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", so this trait is not object safe.

Implementations on Foreign Types§

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 &'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 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>

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>

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

Source§

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

Source§

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

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

Source§

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