I have an Endpoint struct following the codes below:
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize, Hash)]
pub struct ClientTLS {
pub crt: Option<String>,
pub key: Option<String>,
pub sni: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct Endpoint {
pub address: String,
pub tls: Option<ClientTLS>,
}
I'm trying to parse from a blank tls field:
// equals the json: {"address": "127.0.0.1:80", "tls": {}}
let input = r#"
address: 127.0.0.1:80
tls:
"#;
let endpoint: Endpoint = serde_yaml::from_str(input).unwrap();
println!("endpoint: {:?}", endpoint);
// will print: Endpoint { address: "127.0.0.1:80", tls: None }
My expected value is the tls field should be Some( ClientTLS: {crt: None, key: None, sni: None} ) like the behavior of serde_json, but it seems decoded as None.
How to fix my codes to return the expected value?
I have an
Endpointstruct following the codes below:I'm trying to parse from a blank
tlsfield:My expected value is the
tlsfield should beSome( ClientTLS: {crt: None, key: None, sni: None} )like the behavior ofserde_json, but it seems decoded as None.How to fix my codes to return the expected value?