dfx-base 1.0.0-beta

A FIX protocol implementation
Documentation

#[derive(Copy, Clone, Eq, PartialEq, Debug)]
pub enum FieldType {
    Boolean,
    Char,
    DateOnly,
    DateTime,
    Decimal,
    Int,
    String,
    TimeOnly,
}

impl FieldType {
    pub fn get(value: &str) -> Result<Self, String> {
        match value {
            "STRING" => Ok(Self::String),
            "CHAR" => Ok(Self::Char),
            "PRICE" => Ok(Self::Decimal),
            "INT" => Ok(Self::Int),
            "AMT" => Ok(Self::Decimal),
            "QTY" => Ok(Self::Decimal),
            "CURRENCY" => Ok(Self::String),
            "MULTIPLEVALUESTRING" => Ok(Self::String),
            "MULTIPLESTRINGVALUE" => Ok(Self::String),
            "MULTIPLECHARVALUE" => Ok(Self::String),
            "EXCHANGE" => Ok(Self::String),
            "UTCTIMESTAMP" => Ok(Self::DateTime),
            "BOOLEAN" => Ok(Self::Boolean),
            "LOCALMKTDATE" => Ok(Self::String),
            "LOCALMKTTIME" => Ok(Self::String),
            "DATA" => Ok(Self::String),
            "FLOAT" => Ok(Self::Decimal),
            "PRICEOFFSET" => Ok(Self::Decimal),
            "MONTHYEAR" => Ok(Self::String),
            "DAYOFMONTH" => Ok(Self::String),
            "UTCDATE" => Ok(Self::DateOnly),
            "UTCDATEONLY" => Ok(Self::DateOnly),
            "UTCTIMEONLY" => Ok(Self::TimeOnly),
            "NUMINGROUP" => Ok(Self::Int),
            "PERCENTAGE" => Ok(Self::Decimal),
            "SEQNUM" => Ok(Self::Int),
            "TAGNUM" => Ok(Self::Int),
            "LENGTH" => Ok(Self::Int),
            "COUNTRY" => Ok(Self::String),
            "TZTIMEONLY" => Ok(Self::String),
            "TZTIMESTAMP" => Ok(Self::String),
            "XMLDATA" => Ok(Self::String),
            "LANGUAGE" => Ok(Self::String),
            "XID" => Ok(Self::String),
            "XIDREF" => Ok(Self::String),
            "TIME" => Ok(Self::DateTime),
            "DATE" => Ok(Self::String),
            _ => Err(format!("Invalid type: {}", String::from_utf8_lossy(value.as_ref())))
        }
    }
}