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 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 CheckSum

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 Date

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 MonthYear

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 TagU32

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 Time

Source§

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

Source§

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

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 Tz

Source§

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

Source§

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

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