#![cfg_attr(not(feature = "std"), no_std)]
#![doc = include_str!("../docs/rustdoc_include/borsh_crate_top_level.md")]
#[cfg(not(feature = "std"))]
extern crate alloc;
#[doc = include_str!("../docs/rustdoc_include/borsh_schema.md")]
#[cfg(feature = "unstable__schema")]
pub use borsh_derive::BorshSchema;
#[doc = include_str!("../docs/rustdoc_include/borsh_deserialize.md")]
#[cfg(feature = "derive")]
pub use borsh_derive::BorshDeserialize;
#[doc = include_str!("../docs/rustdoc_include/borsh_serialize.md")]
#[cfg(feature = "derive")]
pub use borsh_derive::BorshSerialize;
pub mod de;
#[cfg(feature = "unstable__schema")]
pub mod schema;
#[cfg(feature = "unstable__schema")]
pub(crate) mod schema_helpers;
pub mod ser;
pub use de::BorshDeserialize;
pub use de::{from_reader, from_slice};
#[cfg(feature = "unstable__schema")]
pub use schema::BorshSchema;
#[cfg(feature = "unstable__schema")]
pub use schema_helpers::{
max_serialized_size, schema_container_of, try_from_slice_with_schema, try_to_vec_with_schema,
};
pub use ser::helpers::{object_length, to_vec, to_writer};
pub use ser::BorshSerialize;
pub mod error;
#[cfg(all(feature = "std", feature = "hashbrown"))]
compile_error!("feature \"std\" and feature \"hashbrown\" don't make sense at the same time");
#[cfg(feature = "std")]
use std::io as io_impl;
#[cfg(not(feature = "std"))]
mod nostd_io;
#[cfg(not(feature = "std"))]
use nostd_io as io_impl;
pub mod io {
pub use super::io_impl::{Error, ErrorKind, Read, Result, Write};
}
#[doc(hidden)]
pub mod __private {
#[cfg(feature = "std")]
pub mod maybestd {
pub use std::{borrow, boxed, collections, format, string, vec};
#[cfg(feature = "rc")]
pub use std::{rc, sync};
}
#[cfg(not(feature = "std"))]
pub mod maybestd {
pub use alloc::{borrow, boxed, format, string, vec};
#[cfg(feature = "rc")]
pub use alloc::{rc, sync};
pub mod collections {
pub use alloc::collections::{btree_map, BTreeMap, BTreeSet, LinkedList, VecDeque};
#[cfg(feature = "hashbrown")]
pub use hashbrown::*;
}
}
}