quickfix-tokio 0.2.0

A pure-Rust FIX protocol engine built natively on tokio
Documentation
//! GENERATED by `generate-fix` — do not edit by hand.
#![allow(clippy::all, unused_imports, unused_mut, dead_code, non_upper_case_globals)]

//! Typed messages for FIXT.1.1 — generated from its spec XML.

pub mod fields;
pub mod messages;
pub use messages::*;

pub const BEGIN_STRING: &str = "FIXT.1.1";

/// Every message type of this FIX version, for typed dispatch.
#[derive(Debug, Clone)]
pub enum AnyMessage {
    Heartbeat(messages::heartbeat::Heartbeat),
    Logon(messages::logon::Logon),
    Logout(messages::logout::Logout),
    Reject(messages::reject::Reject),
    ResendRequest(messages::resend_request::ResendRequest),
    SequenceReset(messages::sequence_reset::SequenceReset),
    TestRequest(messages::test_request::TestRequest),
    /// MsgType not defined by this dictionary.
    Unknown(crate::Message),
}

/// Classify a generic message into its typed representation.
pub fn classify(msg: crate::Message) -> AnyMessage {
    match msg.msg_type().ok().as_deref().unwrap_or("") {
        "0" => AnyMessage::Heartbeat(messages::heartbeat::Heartbeat(msg)),
        "A" => AnyMessage::Logon(messages::logon::Logon(msg)),
        "5" => AnyMessage::Logout(messages::logout::Logout(msg)),
        "3" => AnyMessage::Reject(messages::reject::Reject(msg)),
        "2" => AnyMessage::ResendRequest(messages::resend_request::ResendRequest(msg)),
        "4" => AnyMessage::SequenceReset(messages::sequence_reset::SequenceReset(msg)),
        "1" => AnyMessage::TestRequest(messages::test_request::TestRequest(msg)),
        _ => AnyMessage::Unknown(msg),
    }
}