use crate::{Ref, Value};
#[cfg_attr(feature = "async", maybe_impl::traits(Send, Sync))]
pub trait Options<T: Value> {
fn value(&self) -> Ref<T>;
}
#[inline]
pub fn create<T: Value>(options: T) -> impl Options<T> {
OptionsWrapper(Ref::new(options))
}
struct OptionsWrapper<T: Value>(Ref<T>);
impl<T: Value> Options<T> for OptionsWrapper<T> {
#[inline]
fn value(&self) -> Ref<T> {
self.0.clone()
}
}