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 ) -> usizewhere 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) -> usizewhere 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).

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

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

§

type Error = Utf8Error

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = ()

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ZeroPadding

source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ZeroPadding

source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ZeroPadding

source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usizewhere 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

§

type Error = &'static str

§

type SerializeSettings = ZeroPadding

source§

fn serialize_with<B>(&self, buffer: &mut B, padding: ZeroPadding) -> usizewhere 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, const N: usize> FieldType<'a> for &'a [u8; N]

§

type Error = ()

§

type SerializeSettings = ()

source§

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

source§

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

source§

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

§

type Error = ()

§

type SerializeSettings = ()

source§

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

source§

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

Implementors§

source§

impl<'a> FieldType<'a> for AccountType

source§

impl<'a> FieldType<'a> for AcctIdSource

source§

impl<'a> FieldType<'a> for Adjustment

source§

impl<'a> FieldType<'a> for AdjustmentType

source§

impl<'a> FieldType<'a> for AdvSide

source§

impl<'a> FieldType<'a> for AdvTransType

source§

impl<'a> FieldType<'a> for AffirmStatus

source§

impl<'a> FieldType<'a> for AggregatedBook

source§

impl<'a> FieldType<'a> for AllocAccountType

source§

impl<'a> FieldType<'a> for AllocCancReplaceReason

source§

impl<'a> FieldType<'a> for AllocHandlInst

source§

impl<'a> FieldType<'a> for AllocIntermedReqType

source§

impl<'a> FieldType<'a> for AllocLinkType

source§

impl<'a> FieldType<'a> for AllocNoOrdersType

source§

impl<'a> FieldType<'a> for AllocRejCode

source§

impl<'a> FieldType<'a> for AllocReportType

source§

impl<'a> FieldType<'a> for AllocSettlInstType

source§

impl<'a> FieldType<'a> for AllocStatus

source§

impl<'a> FieldType<'a> for AllocTransType

source§

impl<'a> FieldType<'a> for AllocType

source§

impl<'a> FieldType<'a> for ApplQueueAction

source§

impl<'a> FieldType<'a> for ApplQueueResolution

source§

impl<'a> FieldType<'a> for AssignmentMethod

source§

impl<'a> FieldType<'a> for AvgPxIndicator

source§

impl<'a> FieldType<'a> for BasisPxType

source§

impl<'a> FieldType<'a> for BidDescriptorType

source§

impl<'a> FieldType<'a> for BidRequestTransType

source§

impl<'a> FieldType<'a> for BidTradeType

source§

impl<'a> FieldType<'a> for BidType

source§

impl<'a> FieldType<'a> for BookingType

source§

impl<'a> FieldType<'a> for BookingUnit

source§

impl<'a> FieldType<'a> for BusinessRejectReason

source§

impl<'a> FieldType<'a> for CancellationRights

source§

impl<'a> FieldType<'a> for CashMargin

source§

impl<'a> FieldType<'a> for ClearingFeeIndicator

source§

impl<'a> FieldType<'a> for ClearingInstruction

source§

impl<'a> FieldType<'a> for CollAction

source§

impl<'a> FieldType<'a> for CollAsgnReason

source§

impl<'a> FieldType<'a> for CollAsgnRejectReason

source§

impl<'a> FieldType<'a> for CollAsgnRespType

source§

impl<'a> FieldType<'a> for CollAsgnTransType

source§

impl<'a> FieldType<'a> for CollInquiryQualifier

source§

impl<'a> FieldType<'a> for CollInquiryResult

source§

impl<'a> FieldType<'a> for CollInquiryStatus

source§

impl<'a> FieldType<'a> for CollStatus

source§

impl<'a> FieldType<'a> for CommType

source§

impl<'a> FieldType<'a> for ConfirmRejReason

source§

impl<'a> FieldType<'a> for ConfirmStatus

source§

impl<'a> FieldType<'a> for ConfirmTransType

source§

impl<'a> FieldType<'a> for ConfirmType

source§

impl<'a> FieldType<'a> for ContAmtType

source§

impl<'a> FieldType<'a> for CorporateAction

source§

impl<'a> FieldType<'a> for CoveredOrUncovered

source§

impl<'a> FieldType<'a> for CpProgram

source§

impl<'a> FieldType<'a> for CrossPrioritization

source§

impl<'a> FieldType<'a> for CrossType

source§

impl<'a> FieldType<'a> for CustOrderCapacity

source§

impl<'a> FieldType<'a> for CxlRejReason

source§

impl<'a> FieldType<'a> for CxlRejResponseTo

source§

impl<'a> FieldType<'a> for DayBookingInst

source§

impl<'a> FieldType<'a> for DeleteReason

source§

impl<'a> FieldType<'a> for DeliveryForm

source§

impl<'a> FieldType<'a> for DeliveryType

source§

impl<'a> FieldType<'a> for DiscretionInst

source§

impl<'a> FieldType<'a> for DiscretionLimitType

source§

impl<'a> FieldType<'a> for DiscretionMoveType

source§

impl<'a> FieldType<'a> for DiscretionOffsetType

source§

impl<'a> FieldType<'a> for DiscretionRoundDirection

source§

impl<'a> FieldType<'a> for DiscretionScope

source§

impl<'a> FieldType<'a> for DistribPaymentMethod

source§

impl<'a> FieldType<'a> for DkReason

source§

impl<'a> FieldType<'a> for DlvyInstType

source§

impl<'a> FieldType<'a> for DueToRelated

source§

impl<'a> FieldType<'a> for EmailType

source§

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

source§

impl<'a> FieldType<'a> for EventType

source§

impl<'a> FieldType<'a> for ExchangeForPhysical

source§

impl<'a> FieldType<'a> for ExecInst

source§

impl<'a> FieldType<'a> for ExecPriceType

source§

impl<'a> FieldType<'a> for ExecRestatementReason

source§

impl<'a> FieldType<'a> for ExecType

source§

impl<'a> FieldType<'a> for ExerciseMethod

source§

impl<'a> FieldType<'a> for ExpirationCycle

source§

impl<'a> FieldType<'a> for FinancialStatus

source§

impl<'a> FieldType<'a> for ForexReq

source§

impl<'a> FieldType<'a> for FundRenewWaiv

source§

impl<'a> FieldType<'a> for GapFillFlag

source§

impl<'a> FieldType<'a> for GtBookingInst

source§

impl<'a> FieldType<'a> for HaltReasonChar

source§

impl<'a> FieldType<'a> for HandlInst

source§

impl<'a> FieldType<'a> for InViewOfCommon

source§

impl<'a> FieldType<'a> for IncTaxInd

source§

impl<'a> FieldType<'a> for InstrAttribType

source§

impl<'a> FieldType<'a> for IoiNaturalFlag

source§

impl<'a> FieldType<'a> for IoiQltyInd

source§

impl<'a> FieldType<'a> for IoiQty

source§

impl<'a> FieldType<'a> for IoiQualifier

source§

impl<'a> FieldType<'a> for IoiTransType

source§

impl<'a> FieldType<'a> for LastCapacity

source§

impl<'a> FieldType<'a> for LastFragment

source§

impl<'a> FieldType<'a> for LastLiquidityInd

source§

impl<'a> FieldType<'a> for LegSwapType

source§

impl<'a> FieldType<'a> for LegalConfirm

source§

impl<'a> FieldType<'a> for LiquidityIndType

source§

impl<'a> FieldType<'a> for ListExecInstType

source§

impl<'a> FieldType<'a> for ListOrderStatus

source§

impl<'a> FieldType<'a> for ListStatusType

source§

impl<'a> FieldType<'a> for LocateReqd

source§

impl<'a> FieldType<'a> for MassCancelRejectReason

source§

impl<'a> FieldType<'a> for MassCancelRequestType

source§

impl<'a> FieldType<'a> for MassCancelResponse

source§

impl<'a> FieldType<'a> for MassStatusReqType

source§

impl<'a> FieldType<'a> for MatchStatus

source§

impl<'a> FieldType<'a> for MatchType

source§

impl<'a> FieldType<'a> for MdEntryType

source§

impl<'a> FieldType<'a> for MdImplicitDelete

source§

impl<'a> FieldType<'a> for MdReqRejReason

source§

impl<'a> FieldType<'a> for MdUpdateAction

source§

impl<'a> FieldType<'a> for MdUpdateType

source§

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

source§

impl<'a> FieldType<'a> for MiscFeeBasis

source§

impl<'a> FieldType<'a> for MiscFeeType

source§

impl<'a> FieldType<'a> for MoneyLaunderingStatus

source§

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

source§

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

source§

impl<'a> FieldType<'a> for MultiLegReportingType

source§

impl<'a> FieldType<'a> for MultiLegRptTypeReq

source§

impl<'a> FieldType<'a> for NetGrossInd

source§

impl<'a> FieldType<'a> for NetworkRequestType

source§

impl<'a> FieldType<'a> for NetworkStatusResponseType

source§

impl<'a> FieldType<'a> for NoSides

source§

impl<'a> FieldType<'a> for NotifyBrokerOfCredit

source§

impl<'a> FieldType<'a> for OddLot

source§

impl<'a> FieldType<'a> for OpenCloseSettlFlag

source§

impl<'a> FieldType<'a> for OrdRejReason

source§

impl<'a> FieldType<'a> for OrdStatus

source§

impl<'a> FieldType<'a> for OrdType

source§

impl<'a> FieldType<'a> for OrderCapacity

source§

impl<'a> FieldType<'a> for OrderRestrictions

source§

impl<'a> FieldType<'a> for OwnerType

source§

impl<'a> FieldType<'a> for OwnershipType

source§

impl<'a> FieldType<'a> for PartyIdSource

source§

impl<'a> FieldType<'a> for PartyRole

source§

impl<'a> FieldType<'a> for PartySubIdType

source§

impl<'a> FieldType<'a> for PaymentMethod

source§

impl<'a> FieldType<'a> for PegLimitType

source§

impl<'a> FieldType<'a> for PegMoveType

source§

impl<'a> FieldType<'a> for PegOffsetType

source§

impl<'a> FieldType<'a> for PegRoundDirection

source§

impl<'a> FieldType<'a> for PegScope

source§

impl<'a> FieldType<'a> for PosAmtType

source§

impl<'a> FieldType<'a> for PosMaintAction

source§

impl<'a> FieldType<'a> for PosMaintResult

source§

impl<'a> FieldType<'a> for PosMaintStatus

source§

impl<'a> FieldType<'a> for PosQtyStatus

source§

impl<'a> FieldType<'a> for PosReqResult

source§

impl<'a> FieldType<'a> for PosReqStatus

source§

impl<'a> FieldType<'a> for PosReqType

source§

impl<'a> FieldType<'a> for PosTransType

source§

impl<'a> FieldType<'a> for PosType

source§

impl<'a> FieldType<'a> for PositionEffect

source§

impl<'a> FieldType<'a> for PossDupFlag

source§

impl<'a> FieldType<'a> for PossResend

source§

impl<'a> FieldType<'a> for PreallocMethod

source§

impl<'a> FieldType<'a> for PreviouslyReported

source§

impl<'a> FieldType<'a> for PriceType

source§

impl<'a> FieldType<'a> for PriorityIndicator

source§

impl<'a> FieldType<'a> for ProcessCode

source§

impl<'a> FieldType<'a> for Product

source§

impl<'a> FieldType<'a> for ProgRptReqs

source§

impl<'a> FieldType<'a> for PublishTrdIndicator

source§

impl<'a> FieldType<'a> for PutOrCall

source§

impl<'a> FieldType<'a> for QtyType

source§

impl<'a> FieldType<'a> for QuoteCancelType

source§

impl<'a> FieldType<'a> for QuoteCondition

source§

impl<'a> FieldType<'a> for QuotePriceType

source§

impl<'a> FieldType<'a> for QuoteRejectReason

source§

impl<'a> FieldType<'a> for QuoteRequestRejectReason

source§

impl<'a> FieldType<'a> for QuoteRequestType

source§

impl<'a> FieldType<'a> for QuoteRespType

source§

impl<'a> FieldType<'a> for QuoteResponseLevel

source§

impl<'a> FieldType<'a> for QuoteStatus

source§

impl<'a> FieldType<'a> for QuoteType

source§

impl<'a> FieldType<'a> for RegistRejReasonCode

source§

impl<'a> FieldType<'a> for RegistStatus

source§

impl<'a> FieldType<'a> for RegistTransType

source§

impl<'a> FieldType<'a> for ReportToExch

source§

impl<'a> FieldType<'a> for ResetSeqNumFlag

source§

impl<'a> FieldType<'a> for ResponseTransportType

source§

impl<'a> FieldType<'a> for RoundingDirection

source§

impl<'a> FieldType<'a> for RoutingType

source§

impl<'a> FieldType<'a> for Scope

source§

impl<'a> FieldType<'a> for SecurityIdSource

source§

impl<'a> FieldType<'a> for SecurityListRequestType

source§

impl<'a> FieldType<'a> for SecurityRequestResult

source§

impl<'a> FieldType<'a> for SecurityRequestType

source§

impl<'a> FieldType<'a> for SecurityResponseType

source§

impl<'a> FieldType<'a> for SecurityTradingStatus

source§

impl<'a> FieldType<'a> for SecurityType

source§

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

source§

impl<'a> FieldType<'a> for SettlCurrFxRateCalc

source§

impl<'a> FieldType<'a> for SettlDeliveryType

source§

impl<'a> FieldType<'a> for SettlInstMode

source§

impl<'a> FieldType<'a> for SettlInstReqRejCode

source§

impl<'a> FieldType<'a> for SettlInstSource

source§

impl<'a> FieldType<'a> for SettlInstTransType

source§

impl<'a> FieldType<'a> for SettlPriceType

source§

impl<'a> FieldType<'a> for SettlSessId

source§

impl<'a> FieldType<'a> for SettlType

source§

impl<'a> FieldType<'a> for ShortSaleReason

source§

impl<'a> FieldType<'a> for Side

source§

impl<'a> FieldType<'a> for SideMultiLegReportingType

source§

impl<'a> FieldType<'a> for SideValueInd

source§

impl<'a> FieldType<'a> for SolicitedFlag

source§

impl<'a> FieldType<'a> for StandInstDbType

source§

impl<'a> FieldType<'a> for StatusValue

source§

impl<'a> FieldType<'a> for StipulationType

source§

impl<'a> FieldType<'a> for SubscriptionRequestType

source§

impl<'a> FieldType<'a> for TargetStrategy

source§

impl<'a> FieldType<'a> for TaxAdvantageType

source§

impl<'a> FieldType<'a> for TerminationType

source§

impl<'a> FieldType<'a> for TestMessageIndicator

source§

impl<'a> FieldType<'a> for TickDirection

source§

impl<'a> FieldType<'a> for TimeInForce

source§

impl<'a> FieldType<'a> for TradSesMethod

source§

impl<'a> FieldType<'a> for TradSesMode

source§

impl<'a> FieldType<'a> for TradSesStatus

source§

impl<'a> FieldType<'a> for TradSesStatusRejReason

source§

impl<'a> FieldType<'a> for TradeAllocIndicator

source§

impl<'a> FieldType<'a> for TradeCondition

source§

impl<'a> FieldType<'a> for TradeReportRejectReason

source§

impl<'a> FieldType<'a> for TradeReportType

source§

impl<'a> FieldType<'a> for TradeRequestResult

source§

impl<'a> FieldType<'a> for TradeRequestStatus

source§

impl<'a> FieldType<'a> for TradeRequestType

source§

impl<'a> FieldType<'a> for TradedFlatSwitch

source§

impl<'a> FieldType<'a> for TrdRegTimestampType

source§

impl<'a> FieldType<'a> for TrdRptStatus

source§

impl<'a> FieldType<'a> for TrdType

source§

impl<'a> FieldType<'a> for UnsolicitedIndicator

source§

impl<'a> FieldType<'a> for Urgency

source§

impl<'a> FieldType<'a> for UserRequestType

source§

impl<'a> FieldType<'a> for UserStatus

source§

impl<'a> FieldType<'a> for WorkingIndicator

source§

impl<'a> FieldType<'a> for YieldType

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()

source§

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

§

type Error = &'static str

§

type SerializeSettings = ()