use crate::{Error, Id, NonZeroSlab};
#[derive(Default)]
pub struct Client {
configs: NonZeroSlab<moq_native::ClientConfig>,
}
impl Client {
pub fn create(&mut self) -> Result<Id, Error> {
self.configs.insert(moq_native::ClientConfig::default())
}
pub fn close(&mut self, id: Id) -> Result<(), Error> {
self.configs.remove(id).ok_or(Error::ClientNotFound)?;
Ok(())
}
pub fn get_mut(&mut self, id: Id) -> Result<&mut moq_native::ClientConfig, Error> {
self.configs.get_mut(id).ok_or(Error::ClientNotFound)
}
pub fn config(&self, id: Option<Id>) -> Result<moq_native::ClientConfig, Error> {
match id {
Some(id) => self.configs.get(id).cloned().ok_or(Error::ClientNotFound),
None => Ok(moq_native::ClientConfig::default()),
}
}
}