glaredb_proto 25.6.3

Protobuf definitions for GlareDB
Documentation
use prost::Message;

#[derive(Clone, PartialEq, Message)]
pub struct OptionalString {
    #[prost(message, tag = "1")]
    pub value: Option<String>,
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::packed::{PackedDecoder, PackedEncoder};

    #[test]
    fn packed_optional_string_none() {
        let s = OptionalString { value: None };
        let mut buf = Vec::new();
        PackedEncoder::new(&mut buf).encode_next(&s).unwrap();

        let got: OptionalString = PackedDecoder::new(&buf).decode_next().unwrap();
        assert_eq!(None, got.value);
    }

    #[test]
    fn packed_optional_string_some() {
        let s = OptionalString {
            value: Some("mario".to_string()),
        };
        let mut buf = Vec::new();
        PackedEncoder::new(&mut buf).encode_next(&s).unwrap();

        let got: OptionalString = PackedDecoder::new(&buf).decode_next().unwrap();
        assert_eq!(Some("mario".to_string()), got.value);
    }
}