pub trait Serialization {
// Required methods
fn append(&mut self, bytes: &[u8]) -> &Self;
fn write_length_encoded(
&mut self,
value: &[u8],
encode_value: bool,
) -> &Self;
fn write_field_and_value(
&mut self,
field: FieldInstance,
value: &[u8],
is_unl_modify_workaround: bool,
) -> &Self;
}
Required Methods§
Sourcefn append(&mut self, bytes: &[u8]) -> &Self
fn append(&mut self, bytes: &[u8]) -> &Self
Write given bytes to this BinarySerializer.
§Examples
§Basic usage
use xrpl::core::binarycodec::BinarySerializer;
use xrpl::core::binarycodec::Serialization;
let mut test_bytes: Vec<u8> = [0, 17, 34, 51, 68, 85, 102].to_vec();
let mut serializer: BinarySerializer = BinarySerializer::new();
serializer.append(&mut test_bytes.to_owned());
assert_eq!(test_bytes, serializer);
Sourcefn write_length_encoded(&mut self, value: &[u8], encode_value: bool) -> &Self
fn write_length_encoded(&mut self, value: &[u8], encode_value: bool) -> &Self
Write a variable length encoded value to the BinarySerializer.
§Examples
§Basic usage
use xrpl::core::binarycodec::BinarySerializer;
use xrpl::core::binarycodec::Serialization;
let expected: Vec<u8> = [3, 0, 17, 34].to_vec();
let mut test_bytes: Vec<u8> = [0, 17, 34].to_vec();
let mut serializer: BinarySerializer = BinarySerializer::new();
serializer.write_length_encoded(&mut test_bytes, true);
assert_eq!(expected, serializer);
Sourcefn write_field_and_value(
&mut self,
field: FieldInstance,
value: &[u8],
is_unl_modify_workaround: bool,
) -> &Self
fn write_field_and_value( &mut self, field: FieldInstance, value: &[u8], is_unl_modify_workaround: bool, ) -> &Self
Write field and value to the buffer.
§Examples
§Basic usage
use xrpl::core::binarycodec::BinarySerializer;
use xrpl::core::binarycodec::Serialization;
use xrpl::core::binarycodec::definitions::FieldInstance;
use xrpl::core::binarycodec::definitions::FieldInfo;
use xrpl::core::binarycodec::definitions::FieldHeader;
let field_header: FieldHeader = FieldHeader {
type_code: -2,
field_code: 0,
};
let field_info: FieldInfo = FieldInfo {
nth: 0,
is_vl_encoded: false,
is_serialized: false,
is_signing_field: false,
r#type: "Unknown".to_string(),
};
let field_instance = FieldInstance::new(&field_info, "Generic", field_header);
let expected: Vec<u8> = [224, 0, 17, 34].to_vec();
let test_bytes: Vec<u8> = [0, 17, 34].to_vec();
let mut serializer: BinarySerializer = BinarySerializer::new();
serializer.write_field_and_value(field_instance, &test_bytes, false);
assert_eq!(expected, serializer);
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.