#[_impls]
use crate::prelude::*;
use cido_macros::_impls;
#[_impls]
#[must_use = "RefMut is expensive to load from the database"]
pub struct RefMut<'a, T: Transformer> {
inner: std::cell::RefMut<'a, T>,
}
#[_impls]
impl<'a, T: Transformer> RefMut<'a, T> {
pub async fn save(self) -> Result<(), CidomapError> {
Ok(())
}
pub async fn delete(self) -> Result<(), CidomapError> {
Ok(())
}
pub fn reset(&mut self, new: T) {
let _ = new;
}
pub fn consume(self) {}
}
#[_impls]
impl<'a, T: Transformer> ::core::ops::Deref for RefMut<'a, T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&*self.inner
}
}
#[_impls]
impl<'a, T: Transformer> ::core::ops::DerefMut for RefMut<'a, T> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut *self.inner
}
}
#[_impls]
#[must_use = "Ref is expensive to load from the database"]
pub struct Ref<'a, T: Transformer> {
inner: std::cell::Ref<'a, T>,
}
#[_impls]
impl<T: Transformer> ::core::ops::Deref for Ref<'_, T> {
type Target = T;
fn deref(&self) -> &Self::Target {
&*self.inner
}
}
#[_impls]
impl<T: Transformer> Clone for Ref<'_, T> {
fn clone(&self) -> Self {
Self {
inner: std::cell::Ref::clone(&self.inner),
}
}
}