Read/write fressian data. See http://www.edn-format.org/
Usage: (to-input-stream obj)
Implementation detail.
Usage: (associative-lookup o)
Build an ILookup from an associative collection.Source
Usage: (begin-closed-list writer)
Begin writing a fressianed list. To end the list, call end-list. Used to write sequential data whose size is not known in advance.Source
Usage: (begin-open-list writer)
Advanced. Writes fressian code to begin an open list. An open list can be terminated either by a call to end-list, or by simply closing the stream. Used to write sequential data whose size is not known in advance, in contexts where stream failure can safely be interpreted as end of list.Source
Usage: (create-reader in & {:keys [handlers checksum?]})
Create a fressian reader targeting in, which must be compatible with clojure.java.io/input-stream. Handlers must be a map of tag => ReadHandler wrapped in associative-lookup. See clojure-read-handlers for an example.Source
Usage: (create-writer out & {:keys [handlers]})
Create a fressian writer targeting out. Handlers must be a nested map of type => tag => WriteHandler wrapped with associative-lookup and inheritance-lookup. See clojure-write-handlers for an example.Source
Usage: (field-caching-writer cache-pred)
Returns a record writer that caches values for keys
matching cache-pred, which is typically specified
as a set, e.g. (field-caching-writer #{:color})
Source
Usage: (inheritance-lookup lookup)
Returns an inheritance aware lookup based on lookup that will match subclasses as well as exact matches. Will walk inheritance hierarchy once per new type encountered to find the best match, then cache results.Source
Usage: (read readable & options)
Convenience method for reading a single fressian object. Takes same options as create-reader. Readable can be any type supported by clojure.java.io/input-stream, or a ByteBuffer.Source
Usage: (tagged-object? o)
Returns true if o is a tagged object, which will occur when the reader does not recognized a specific type. Use tag and tagged-value to access the contents of a tagged-object.Source
Usage: (tagged-value obj)
Returns the value (an Object arrray) wrapped by obj, or nil if obj is not a tagged object.Source
Usage: (write obj & options)
Convenience method for writing a single object. Returns a byte buffer. Options are the same as for create-reader, with one additional option. If footer? is specified, will write a fressian footer after writing the object.Source
Usage: (write-object writer obj)
Write a single object to a fressian reader. Returns the reader.Source