Trait oberon::inner_types::ScalarLe
source · pub trait ScalarLe: Sized {
// Required methods
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer;
fn deserialize<'de, D>(
deserializer: D
) -> Result<Self, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>;
}
Expand description
A helper trait for serializing Scalars as little-endian instead of big endian.
use bls12_381_plus::{Scalar, ScalarLe};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
pub struct TestStruct {
#[serde(with = "ScalarLe")]
scalar: Scalar,
}
let s = Scalar::from_raw([3u64, 3u64, 3u64, 3u64]);
let t = TestStruct { scalar: s };
let ser1 = serde_json::to_string(&t).unwrap();
let ser2 = serde_json::to_string(&s).unwrap();
assert_eq!(ser1, "{\"scalar\":\"0300000000000000030000000000000003000000000000000300000000000000\"}");
assert_eq!(ser2, "\"0000000000000003000000000000000300000000000000030000000000000003\"");
Required Methods§
sourcefn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where S: Serializer,
Serialize scalar as little-endian
sourcefn deserialize<'de, D>(
deserializer: D
) -> Result<Self, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<'de, D>( deserializer: D ) -> Result<Self, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,
Deserialize into scalar from little-endian