diff --git a/test_suite/tests/test_remote.rs b/test_suite/tests/test_remote.rs index c6d276e10..a334f7ac2 100644 --- a/test_suite/tests/test_remote.rs +++ b/test_suite/tests/test_remote.rs @@ -79,6 +79,12 @@ mod remote { pub value: T, } + impl StructGeneric { + pub fn get_value(&self) -> &T { + &self.value + } + } + pub enum EnumGeneric { Variant(T), } @@ -171,6 +177,13 @@ struct StructPubDef { b: remote::Unit, } +#[derive(Serialize, Deserialize)] +#[serde(remote = "remote::StructGeneric")] +struct StructGenericWithGetterDef { + #[serde(getter = "remote::StructGeneric::get_value")] + value: T, +} + #[derive(Serialize, Deserialize)] #[serde(remote = "remote::StructGeneric")] struct StructConcrete { @@ -206,3 +219,9 @@ impl From for remote::StructPriv { remote::StructPriv::new(def.a, def.b) } } + +impl From> for remote::StructGeneric { + fn from(def: StructGenericWithGetterDef) -> Self { + remote::StructGeneric { value: def.value } + } +}