Skip to main content

FieldType

Trait FieldType 

Source
pub trait FieldType<'a>
where Self: Sized,
{ type Error; type SerializeSettings: Default; // Required methods fn serialize_with<B>( &self, buffer: &mut B, settings: Self::SerializeSettings, ) -> usize where B: Buffer; fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>; // Provided methods fn serialize<B>(&self, buffer: &mut B) -> usize where B: Buffer { ... } fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error> { ... } fn to_bytes(&self) -> Vec<u8> ⓘ { ... } fn to_string(&self) -> String { ... } }
Expand description

Provides (de)serialization logic for a Rust type as FIX field values.

See the field_types module for more information.

Required Associated Types§

Source

type Error

The error type that can arise during deserialization.

Source

type SerializeSettings: Default

A type with values that customize the serialization algorithm, e.g. padding information.

Required Methods§

Source

fn serialize_with<B>( &self, buffer: &mut B, settings: Self::SerializeSettings, ) -> usize
where B: Buffer,

Writes self to buffer using custom serialization settings.

Source

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Parses and deserializes from data.

Provided Methods§

Source

fn serialize<B>(&self, buffer: &mut B) -> usize
where B: Buffer,

Writes self to buffer using default settings.

Source

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Like FieldType::deserialize, but it’s allowed to skip some amount of input checking. Invalid inputs might not trigger errors and instead be deserialized as random values.

§Safety

This method remains 100% safe even on malformed inputs.

Source

fn to_bytes(&self) -> Vec<u8> ⓘ

Serializes self to a Vec of bytes, allocated on the fly.

Source

fn to_string(&self) -> String

Allocates a String representation of self, using FieldType::to_bytes.

§Panics

This function will panic if the underlying byte representation is not valid UTF-8. As such, you should only ever use this function for FieldType implementors that are guaranteed to be representable with valid UTF-8 (like numbers with ASCII digits).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, const N: usize> FieldType<'a> for &'a [u8; N]

Source§

type Error = ()

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a, const N: usize> FieldType<'a> for [u8; N]

Source§

type Error = ()

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for &'a [u8]

Source§

type Error = ()

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for &'a str

Source§

type Error = Utf8Error

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for bool

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for f32

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for f64

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for i32

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for i64

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for i128

Source§

type Error = &'static str

Source§

type SerializeSettings = ()

Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for u32

Source§

type Error = &'static str

Source§

type SerializeSettings = ZeroPadding

Source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for u64

Source§

type Error = &'static str

Source§

type SerializeSettings = ZeroPadding

Source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for u128

Source§

type Error = &'static str

Source§

type SerializeSettings = ZeroPadding

Source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

impl<'a> FieldType<'a> for usize

Source§

type Error = &'static str

Source§

type SerializeSettings = ZeroPadding

Source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usize
where B: Buffer,

Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Implementors§

Source§

impl<'a> FieldType<'a> for ApplVerId

Source§

impl<'a> FieldType<'a> for CheckSum

Source§

impl<'a> FieldType<'a> for Date

Source§

impl<'a> FieldType<'a> for EncryptMethod

Source§

impl<'a> FieldType<'a> for MessageEncoding

Source§

impl<'a> FieldType<'a> for MonthYear

Source§

impl<'a> FieldType<'a> for MsgDirection

Source§

impl<'a> FieldType<'a> for MsgType

Source§

impl<'a> FieldType<'a> for SessionRejectReason

Source§

impl<'a> FieldType<'a> for TagU32

Source§

impl<'a> FieldType<'a> for Time

Source§

impl<'a> FieldType<'a> for Timestamp

Source§

impl<'a> FieldType<'a> for Tz

Source§

impl<'a> FieldType<'a> for TzTime

Source§

impl<'a> FieldType<'a> for TzTimestamp