Crate borsh

Source
Expand description

§Crate features

§Ecosystem features

  • std - When enabled, borsh uses the standard library. Disabling this feature will result in building the crate in no_std environment.

    To carter such builds, Borsh offers io module which includes a items which are used in BorshSerialize and BorshDeserialize traits. Most notably io::Read, io::Write and io::Result.

    When std feature is enabled, those items are re-exports of corresponding std::io items. Otherwise they are borsh-specific types which mimic behaviour of corresponding standard types.

§Default features

  • std - enabled by default.

§Other features

  • derive - Gates derive macros of BorshSerialize and BorshDeserialize traits.

  • unstable__schema - Gates [BorshSchema] trait and its derive macro. Gates [schema] module. This feature requires derive to be enabled too.

  • rc - Gates implementation of BorshSerialize and BorshDeserialize for Rc<T>/Arc<T> respectively. In no_std setting Rc/Arc are pulled from alloc crate. Serializing and deserializing these types does not preserve identity and may result in multiple copies of the same data. Be sure that this is what you want before enabling this feature.

  • hashbrown - Pulls in HashMap/HashSet when no std is available. This feature is set to be mutually exclusive with std feature.

  • bytes - Gates implementation of BorshSerialize and BorshDeserialize for Bytes and BytesMut.

  • bson - Gates implementation of BorshSerialize and BorshDeserialize for ObjectId.

  • ascii - Gates implementation of BorshSerialize, BorshDeserialize, [BorshSchema] for types from ascii crate.

  • de_strict_order - Enables check that keys, parsed during deserialization of HashMap/HashSet and BTreeSet/BTreeMap are encountered in ascending order with respect to PartialOrd for hash collections, and Ord for btree ones. Deserialization emits error otherwise.

    If this feature is not enabled, it is possible that two different byte slices could deserialize into the same HashMap/HashSet object.

§Config aliases

Re-exports§

pub use de::BorshDeserialize;
pub use de::from_reader;
pub use de::from_slice;
pub use ser::BorshSerialize;

Modules§

de
error
io
Subset of std::io which is used as part of borsh public API.
ser

Functions§

object_length
Serializes an object without allocation to compute and return its length
to_vec
Serialize an object into a vector of bytes.
to_writer
Serializes an object directly into a Writer.

Derive Macros§

BorshDeserialize
Derive macro available if borsh is built with features = ["derive"].
BorshSerialize
Derive macro available if borsh is built with features = ["derive"].