83 lines
2.2 KiB
Rust
Raw Normal View History

2026-01-06 15:30:37 +08:00
// #![allow(clippy::all)]
// #![allow(warnings)]
2026-01-09 10:12:15 +08:00
pub mod logoschat {
2026-01-06 15:30:37 +08:00
pub mod convos {
pub mod private_v1 {
2026-01-09 10:12:15 +08:00
include!("logoschat/convos/private_v1/logoschat.convos.private_v1.rs");
2026-01-06 15:30:37 +08:00
}
}
pub mod encryption {
2026-01-09 10:12:15 +08:00
include!("logoschat/encryption/logoschat.encryption.rs");
2026-01-06 15:30:37 +08:00
}
pub mod envelope {
2026-01-09 10:12:15 +08:00
include!("logoschat/envelope/logoschat.envelope.rs");
2026-01-06 15:30:37 +08:00
}
pub mod inbox {
2026-01-09 10:12:15 +08:00
include!("logoschat/inbox/logoschat.inbox.rs");
2026-01-06 15:30:37 +08:00
}
pub mod invite {
2026-01-09 10:12:15 +08:00
include!("logoschat/invite/logoschat.invite.rs");
2026-01-06 15:30:37 +08:00
}
pub mod reliability {
2026-01-09 10:12:15 +08:00
include!("logoschat/reliability/logoschat.reliability.rs");
2026-01-06 15:30:37 +08:00
}
2026-02-09 22:15:38 +01:00
pub mod intro {
include!("logoschat/intro/logoschat.intro.rs");
}
2026-01-06 15:30:37 +08:00
}
2026-01-06 15:45:48 +08:00
#[cfg(test)]
mod tests {
2026-01-09 10:12:15 +08:00
use super::logoschat::{
2026-01-06 15:45:48 +08:00
encryption::{encrypted_payload::Encryption, EncryptedPayload, Plaintext},
invite::InvitePrivateV1,
};
use bytes::Bytes;
use prost::Message;
#[test]
fn test_encrypted_payload_roundtrip() {
let payload = EncryptedPayload {
encryption: Some(Encryption::Plaintext(Plaintext {
payload: Bytes::from_static(b"hello world"),
})),
};
// Encode to bytes
let mut buf = Vec::new();
payload.encode(&mut buf).expect("Encoding failed");
// Decode back
let decoded = EncryptedPayload::decode(&buf[..]).expect("Decoding failed");
match decoded.encryption {
Some(Encryption::Plaintext(p)) => {
assert_eq!(p.payload, Bytes::from_static(b"hello world"));
}
_ => panic!("Expected plaintext variant"),
}
}
#[test]
fn test_invite_private_roundtrip() {
let invite = InvitePrivateV1 {
discriminator: "test_discriminator".to_string(),
initial_message: None, // skipping encrypted payload for simplicity
};
let mut buf = Vec::new();
invite.encode(&mut buf).expect("Encoding failed");
let decoded = InvitePrivateV1::decode(&buf[..]).expect("Decoding failed");
assert_eq!(decoded.discriminator, "test_discriminator");
}
}