wion 0.1.0

Wasm Interface Object Notation
Documentation
use crate::WasiValue;
use serde::{Serialize, Serializer};

impl Serialize for WasiValue {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        match self {
            Self::Boolean(v) => serializer.serialize_bool(*v),
            Self::Unsigned8(v) => serializer.serialize_u8(*v),
            Self::Unsigned16(v) => serializer.serialize_u16(*v),
            Self::Unsigned32(v) => serializer.serialize_u32(*v),
            Self::Unsigned64(v) => serializer.serialize_u64(*v),
            Self::Integer8(v) => serializer.serialize_i8(*v),
            Self::Integer16(v) => serializer.serialize_i16(*v),
            Self::Integer32(v) => serializer.serialize_i32(*v),
            Self::Integer64(v) => serializer.serialize_i64(*v),
            Self::Float32(v) => serializer.serialize_f32(*v),
            Self::Float64(v) => serializer.serialize_f64(*v),
            Self::Unicode(v) => serializer.serialize_char(*v),
            Self::UTF8(v) => serializer.serialize_str(v),
            WasiValue::None => {}
            WasiValue::Object(_) => {}
        }
    }
}