Trait ark_serialize::CanonicalSerialize [−][src]
Serializer in little endian format.
The serialization format must be ‘length-extension’ safe.
e.g. if T implements Canonical Serialize and Deserialize,
then for all strings x, y, if a = T::deserialize(Reader(x)) and a is not an error,
then it must be the case that a = T::deserialize(Reader(x || y)),
and that both readers read the same number of bytes.
This trait can be derived if all fields of a struct implement
CanonicalSerialize and the derive feature is enabled.
Example
// The `derive` feature must be set for the derivation to work. use ark_serialize::*; #[derive(CanonicalSerialize)] struct TestStruct { a: u64, b: (u64, (u64, u64)), }
If your code depends on algebra instead, the example works analogously
when importing algebra::serialize::*.
Required methods
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
Serializes self into writer.
It is left up to a particular type for how it strikes the
serialization efficiency vs compression tradeoff.
For standard types (e.g. bool, lengths, etc.) typically an uncompressed
form is used, whereas for algebraic types compressed forms are used.
Particular examples of interest:
bool - 1 byte encoding
uints - Direct encoding
Length prefixing (for any container implemented by default) - 8 byte encoding
Elliptic curves - compressed point encoding
fn serialized_size(&self) -> usize[src]
Provided methods
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
Serializes self into writer without compression.
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
Serializes self into writer without compression, and without
performing validity checks. Should be used only when there is no
danger of adversarial manipulation of the output.
fn uncompressed_size(&self) -> usize[src]
Implementations on Foreign Types
impl CanonicalSerialize for String[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl<T: CanonicalSerialize> CanonicalSerialize for Vec<T>[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<T> CanonicalSerialize for PhantomData<T>[src]
fn serialize<W: Write>(&self, _writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl<'a, T: CanonicalSerialize + ToOwned> CanonicalSerialize for Cow<'a, T>[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<T: CanonicalSerialize> CanonicalSerialize for Option<T>[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
impl<T: CanonicalSerialize> CanonicalSerialize for Rc<T>[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
impl<K, V> CanonicalSerialize for BTreeMap<K, V> where
K: CanonicalSerialize,
V: CanonicalSerialize, [src]
K: CanonicalSerialize,
V: CanonicalSerialize,
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<T: CanonicalSerialize> CanonicalSerialize for BTreeSet<T>[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
Implementors
impl CanonicalSerialize for ()[src]
fn serialize<W: Write>(&self, _writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl CanonicalSerialize for bool[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl CanonicalSerialize for u8[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl CanonicalSerialize for u16[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl CanonicalSerialize for u32[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl CanonicalSerialize for u64[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl CanonicalSerialize for usize[src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
impl<A, B> CanonicalSerialize for (A, B) where
A: CanonicalSerialize,
B: CanonicalSerialize, [src]
A: CanonicalSerialize,
B: CanonicalSerialize,
fn serialize<W: Write>(&self, _writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<A, B, C> CanonicalSerialize for (A, B, C) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize, [src]
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
fn serialize<W: Write>(&self, _writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<A, B, C, D> CanonicalSerialize for (A, B, C, D) where
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
D: CanonicalSerialize, [src]
A: CanonicalSerialize,
B: CanonicalSerialize,
C: CanonicalSerialize,
D: CanonicalSerialize,
fn serialize<W: Write>(&self, _writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
_writer: W
) -> Result<(), SerializationError>[src]
&self,
_writer: W
) -> Result<(), SerializationError>
fn uncompressed_size(&self) -> usize[src]
impl<T: CanonicalSerialize> CanonicalSerialize for [T][src]
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>[src]
fn serialized_size(&self) -> usize[src]
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>[src]
&self,
writer: W
) -> Result<(), SerializationError>