veilid-core 0.5.3

Core library used to create a Veilid node and operate it as part of an application
Documentation
use super::*;

pub const FOURCC_SEQUENCING_NO_PREFERENCE: u32 = u32::from_be_bytes(*b"sqNP");
pub const FOURCC_SEQUENCING_PREFER_ORDERED: u32 = u32::from_be_bytes(*b"sqPO");
pub const FOURCC_SEQUENCING_ENSURE_ORDERED: u32 = u32::from_be_bytes(*b"sqEO");

pub fn decode_sequencing(sequencing: u32) -> Result<Sequencing, RPCError> {
    match sequencing {
        FOURCC_SEQUENCING_NO_PREFERENCE => Ok(Sequencing::NoPreference),
        FOURCC_SEQUENCING_PREFER_ORDERED => Ok(Sequencing::PreferOrdered),
        FOURCC_SEQUENCING_ENSURE_ORDERED => Ok(Sequencing::EnsureOrdered),
        _ => Err(RPCError::ignore("unsupported sequencing")),
    }
}

pub fn encode_sequencing(sequencing: Sequencing) -> u32 {
    match sequencing {
        Sequencing::NoPreference => FOURCC_SEQUENCING_NO_PREFERENCE,
        Sequencing::PreferOrdered => FOURCC_SEQUENCING_PREFER_ORDERED,
        Sequencing::EnsureOrdered => FOURCC_SEQUENCING_ENSURE_ORDERED,
    }
}