valor-config 0.1.0

Valkyrie workspace manager
Documentation
#[macro_export]
macro_rules! bind_writer {
    ($writer:ident, $class:ident) => {
        struct $writer<'i> {
            ptr: &'i mut $class,
        }
        impl<'de> serde::Deserialize<'de> for $class {
            fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
            where
                D: serde::Deserializer<'de>,
            {
                let mut out = $class::default();
                let writer = $writer { ptr: &mut out };
                deserializer.deserialize_any(writer)?;
                Ok(out)
            }
            fn deserialize_in_place<D>(deserializer: D, place: &mut Self) -> Result<(), D::Error>
            where
                D: serde::Deserializer<'de>,
            {
                let writer = $writer { ptr: place };
                deserializer.deserialize_any(writer)?;
                Ok(())
            }
        }
    };
}