1
0
Fork 0
forked from wry/wry
wry/src/ei.rs
2024-07-25 19:40:29 +02:00

33 lines
832 B
Rust

use {crate::ei::ei_object::EiVersion, std::cell::Cell};
pub mod ei_acceptor;
pub mod ei_client;
pub mod ei_ifs;
pub mod ei_object;
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub enum EiContext {
Sender,
Receiver,
}
pub struct EiInterfaceVersion {
pub server_max_version: EiVersion,
pub client_max_version: Cell<EiVersion>,
pub version: Cell<EiVersion>,
}
impl EiInterfaceVersion {
pub fn new(server_max_version: u32) -> Self {
Self {
server_max_version: EiVersion(server_max_version),
client_max_version: Cell::new(EiVersion(0)),
version: Cell::new(EiVersion(0)),
}
}
pub fn set_client_version(&self, version: EiVersion) {
self.client_max_version.set(version);
self.version.set(self.server_max_version.min(version));
}
}