diff --git a/src/taoensso/nippy.clj b/src/taoensso/nippy.clj index 626671f..f202f69 100644 --- a/src/taoensso/nippy.clj +++ b/src/taoensso/nippy.clj @@ -350,7 +350,28 @@ ;; For back compatibility (nb Timbre's Carmine appender) (enc/defonce ^:dynamic ^:no-doc ^:deprecated *final-freeze-fallback* "DEPRECATED: prefer `*freeze-fallback`." nil) -(enc/defonce ^:dynamic *freeze-fallback* "(fn [data-output x])->freeze, nil => default" nil) +(enc/defonce ^:dynamic *freeze-fallback* + "Controls Nippy's behaviour when trying to freeze an item for which Nippy + doesn't currently have a native freeze/thaw implementation. + + Possible values: + + 1. `nil` (no freeze-fallback, default) + Tries the following in order: + - Freeze with Java's `Serializable` interface if possible + - Freeze with Clojure's reader if possible + - Throw + + 2. `:write-unfreezable` keyword + Tries the following in order: + - Freeze with Java's `Serializable` interface if possible + - Freeze with Clojure's reader if possible + - Freeze a {:nippy/unfreezable {:type _}} placeholder value + + 3. [Advanced] Custom (fn [^java.io.DataOutput out item]) that must + write exactly one value to the given `DataOutput` stream" + + nil) (enc/defonce ^:dynamic *custom-readers* "{ (fn [data-input])->read}" nil) (enc/defonce ^:dynamic *auto-freeze-compressor*