bevy_console_parser 0.4.0

console command parser for bevy_console
Documentation
#[derive(Clone, Debug, PartialEq)]
pub enum ValueRaw<'a> {
    String(String),
    Int(i64, &'a str),
    Float(f64, &'a str),
    Bool(bool, &'a str),
}

#[derive(Clone, Debug, PartialEq)]
pub enum ValueRawOwned {
    String(String),
    Int(i64, String),
    Float(f64, String),
    Bool(bool, String),
}

#[derive(Clone, Debug, PartialEq)]
pub enum Value {
    String(String),
    Int(i64),
    Float(f64),
    Bool(bool),
}

impl From<ValueRaw<'_>> for ValueRawOwned {
    fn from(value: ValueRaw) -> Self {
        match value {
            ValueRaw::String(s) => ValueRawOwned::String(s),
            ValueRaw::Int(num, raw) => ValueRawOwned::Int(num, raw.to_string()),
            ValueRaw::Float(num, raw) => ValueRawOwned::Float(num, raw.to_string()),
            ValueRaw::Bool(b, raw) => ValueRawOwned::Bool(b, raw.to_string()),
        }
    }
}

impl From<ValueRaw<'_>> for Value {
    fn from(value: ValueRaw) -> Self {
        match value {
            ValueRaw::String(s) => Value::String(s),
            ValueRaw::Int(num, _) => Value::Int(num),
            ValueRaw::Float(num, _) => Value::Float(num),
            ValueRaw::Bool(b, _) => Value::Bool(b),
        }
    }
}

impl From<ValueRawOwned> for Value {
    fn from(value: ValueRawOwned) -> Self {
        match value {
            ValueRawOwned::String(s) => Value::String(s),
            ValueRawOwned::Int(num, _) => Value::Int(num),
            ValueRawOwned::Float(num, _) => Value::Float(num),
            ValueRawOwned::Bool(b, _) => Value::Bool(b),
        }
    }
}