#![doc = include_str!("../README.md")]
#![allow(clippy::all)]
pub mod v1 {
tonic::include_proto!("tsoracle.v1");
}
#[cfg(feature = "reflection")]
pub const FILE_DESCRIPTOR_SET: &[u8] =
include_bytes!(concat!(env!("OUT_DIR"), "/tsoracle_descriptor.bin"));
#[cfg(test)]
mod tests {
use super::v1::*;
use prost::Message;
#[test]
fn message_types_exist() {
let _ = GetTsRequest { count: 1 };
let _ = GetTsResponse {
physical_ms: 0,
logical_start: 0,
count: 0,
epoch_hi: 0,
epoch_lo: 0,
};
let _ = LeaderHint {
leader_endpoint: Some("127.0.0.1:50551".into()),
leader_epoch: Some(EpochWire { hi: 0, lo: 1 }),
};
}
#[test]
fn leader_epoch_round_trips_as_a_single_unit() {
let with_epoch = LeaderHint {
leader_endpoint: Some("127.0.0.1:50551".into()),
leader_epoch: Some(EpochWire { hi: 1, lo: 3 }),
};
let decoded = LeaderHint::decode(with_epoch.encode_to_vec().as_ref()).unwrap();
assert_eq!(decoded.leader_epoch, Some(EpochWire { hi: 1, lo: 3 }));
let without_epoch = LeaderHint {
leader_endpoint: Some("127.0.0.1:50551".into()),
leader_epoch: None,
};
let decoded = LeaderHint::decode(without_epoch.encode_to_vec().as_ref()).unwrap();
assert_eq!(decoded.leader_epoch, None);
}
}