Add tests of concrete def of generic remote type

This commit is contained in:
David Tolnay 2022-11-27 15:58:37 -08:00
parent 4873b48b02
commit 9a53bd9125
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82

View File

@ -74,6 +74,14 @@ mod remote {
&self.b
}
}
pub struct StructGeneric<T> {
pub value: T,
}
pub enum EnumGeneric<T> {
Variant(T),
}
}
#[derive(Serialize, Deserialize)]
@ -104,6 +112,12 @@ struct Test {
#[serde(with = "StructPubDef")]
struct_pub: remote::StructPub,
#[serde(with = "StructConcrete")]
struct_concrete: remote::StructGeneric<u8>,
#[serde(with = "EnumConcrete")]
enum_concrete: remote::EnumGeneric<u8>,
}
#[derive(Serialize, Deserialize)]
@ -157,6 +171,18 @@ struct StructPubDef {
b: remote::Unit,
}
#[derive(Serialize, Deserialize)]
#[serde(remote = "remote::StructGeneric::<u8>")]
struct StructConcrete {
value: u8,
}
#[derive(Serialize, Deserialize)]
#[serde(remote = "remote::EnumGeneric::<u8>")]
enum EnumConcrete {
Variant(u8),
}
impl From<PrimitivePrivDef> for remote::PrimitivePriv {
fn from(def: PrimitivePrivDef) -> Self {
remote::PrimitivePriv::new(def.0)