use std::ops::{Deref, DerefMut};
use crate::convert::FromZvalMut;
use crate::flags::DataType;
use crate::types::Zval;
#[repr(transparent)]
pub struct Separated<'a>(&'a mut Zval);
impl Deref for Separated<'_> {
type Target = Zval;
#[inline]
fn deref(&self) -> &Zval {
self.0
}
}
impl DerefMut for Separated<'_> {
#[inline]
fn deref_mut(&mut self) -> &mut Zval {
self.0
}
}
impl<'a> FromZvalMut<'a> for Separated<'a> {
const TYPE: DataType = DataType::Mixed;
#[inline]
fn from_zval_mut(zval: &'a mut Zval) -> Option<Self> {
Some(Separated(zval))
}
}
impl std::fmt::Debug for Separated<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_tuple("Separated")
.field(&self.0.get_type())
.finish()
}
}