use crate::plugin::exported_tables::metadata::HasMetadata;
use anyhow::Error;
use std::ffi::CStr;
use std::ops::{Deref, DerefMut};
#[derive(Debug)]
pub struct Private<T>(T);
impl<T> Deref for Private<T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<T> DerefMut for Private<T> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl<T: Default> HasMetadata for Private<T> {
type Metadata = ();
fn new_with_metadata(_tag: &'static CStr, _meta: &Self::Metadata) -> Result<Self, Error> {
Ok(Self(T::default()))
}
}