#![no_std]
#![allow(clippy::legacy_numeric_constants)]
#![allow(clippy::multiple_bound_locations)]
#![crate_name = "float_pigment_consistent_bincode"]
#![crate_type = "rlib"]
#[macro_use]
extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
extern crate byteorder;
#[macro_use]
extern crate serde;
use alloc::vec::Vec;
pub mod config;
pub mod de;
pub mod io;
mod error;
mod internal;
mod ser;
pub use crate::config::{DefaultOptions, Options, SizeDetail};
pub use crate::de::read::BincodeRead;
pub use crate::de::Deserializer;
pub use crate::error::{Error, ErrorKind, Result};
pub use crate::ser::Serializer;
#[inline(always)]
pub fn options() -> DefaultOptions {
DefaultOptions::new()
}
#[cfg(feature = "std")]
pub fn serialize_into<W, T: ?Sized>(writer: W, value: &T) -> Result<()>
where
W: crate::io::Write,
T: serde::Serialize,
{
let (_, sizes_list) = DefaultOptions::new().serialized_size(value)?;
DefaultOptions::new().serialize_into(writer, value, sizes_list)
}
pub fn serialize<T: ?Sized>(value: &T) -> Result<Vec<u8>>
where
T: serde::Serialize,
{
DefaultOptions::new().serialize(value)
}
#[cfg(feature = "std")]
pub fn deserialize_from<R, T>(reader: R) -> Result<T>
where
R: crate::io::Read,
T: serde::de::DeserializeOwned,
{
DefaultOptions::new().deserialize_from(reader)
}
pub fn deserialize_from_custom<'a, R, T>(reader: R) -> Result<T>
where
R: de::read::BincodeRead<'a>,
T: serde::de::DeserializeOwned,
{
DefaultOptions::new().deserialize_from_custom(reader)
}
#[doc(hidden)]
pub fn deserialize_in_place<'a, R, T>(reader: R, place: &mut T) -> Result<()>
where
T: serde::de::Deserialize<'a>,
R: BincodeRead<'a>,
{
DefaultOptions::new().deserialize_in_place(reader, place)
}
pub fn deserialize<'a, T>(bytes: &'a [u8]) -> Result<T>
where
T: serde::de::Deserialize<'a>,
{
DefaultOptions::new().deserialize(bytes)
}
pub fn serialized_size<T: ?Sized>(value: &T) -> Result<(u64, SizeDetail)>
where
T: serde::Serialize,
{
DefaultOptions::new().serialized_size(value)
}