diff --git a/implementations/rust/preserves-schema/src/support/mod.rs b/implementations/rust/preserves-schema/src/support/mod.rs index cd1e92a..e159574 100644 --- a/implementations/rust/preserves-schema/src/support/mod.rs +++ b/implementations/rust/preserves-schema/src/support/mod.rs @@ -23,8 +23,8 @@ pub trait Parse: Sized { fn parse(language: L, value: &Value) -> Result; } -impl Parse<(), Value> for Value { - fn parse(_language: (), value: &Value) -> Result { +impl<'a, Value: NestedValue> Parse<&'a (), Value> for Value { + fn parse(_language: &'a (), value: &Value) -> Result { Ok(value.clone()) } } @@ -33,8 +33,8 @@ pub trait Unparse { fn unparse(&self, language: L) -> Value; } -impl Unparse<(), Value> for Value { - fn unparse(&self, _language: ()) -> Value { +impl<'a, Value: NestedValue> Unparse<&'a (), Value> for Value { + fn unparse(&self, _language: &'a ()) -> Value { self.clone() } }