#[cfg(not(debug_assertions))]
compile_error!("MockHsm is not intended for use in release builds");
use serde::{
de::{Deserialize, Deserializer},
ser::{Serialize, Serializer},
};
use std::sync::{Arc, Mutex};
mod adapter;
mod audit;
mod command;
mod object;
mod session;
mod state;
pub use self::adapter::MockAdapter;
use self::state::State;
use session::Session;
#[derive(Debug)]
pub struct MockHsm(Arc<Mutex<State>>);
impl MockHsm {
pub fn new() -> Self {
MockHsm(Arc::new(Mutex::new(State::new())))
}
}
impl Default for MockHsm {
fn default() -> Self {
Self::new()
}
}
impl Serialize for MockHsm {
fn serialize<S: Serializer>(&self, _serializer: S) -> Result<S::Ok, S::Error> {
panic!("unimplemented");
}
}
impl<'de> Deserialize<'de> for MockHsm {
fn deserialize<D: Deserializer<'de>>(_deserializer: D) -> Result<MockHsm, D::Error> {
panic!("unimplemented");
}
}
pub type MockSession = Session<MockAdapter>;