@@ -19,16 +19,16 @@ pub(crate) mod env_serde {
1919
2020 pub fn deserialize < ' de , D > (
2121 deserializer : D ,
22- ) -> Result < Option < Vec < ( String , String ) > > , D :: Error >
22+ ) -> Result < Option < Vec < ( String , Option < String > ) > > , D :: Error >
2323 where
2424 D : Deserializer < ' de > ,
2525 {
26- let map: Option < BTreeMap < String , String > > = Option :: deserialize ( deserializer) ?;
26+ let map: Option < BTreeMap < String , Option < String > > > = Option :: deserialize ( deserializer) ?;
2727 Ok ( map. map ( |m| m. into_iter ( ) . collect ( ) ) )
2828 }
2929
3030 pub fn serialize < S > (
31- value : & Option < Vec < ( String , String ) > > ,
31+ value : & Option < Vec < ( String , Option < String > ) > > ,
3232 serializer : S ,
3333 ) -> Result < S :: Ok , S :: Error >
3434 where
@@ -37,8 +37,10 @@ pub(crate) mod env_serde {
3737 match value {
3838 None => serializer. serialize_none ( ) ,
3939 Some ( pairs) => {
40- let map: BTreeMap < & str , & str > =
41- pairs. iter ( ) . map ( |( k, v) | ( k. as_str ( ) , v. as_str ( ) ) ) . collect ( ) ;
40+ let map: BTreeMap < & str , Option < & str > > = pairs
41+ . iter ( )
42+ . map ( |( k, v) | ( k. as_str ( ) , v. as_deref ( ) ) )
43+ . collect ( ) ;
4244 map. serialize ( serializer)
4345 }
4446 }
@@ -472,7 +474,7 @@ mod tests {
472474 "env": {
473475 "OBELISK__API__LISTENING_ADDR": "",
474476 "OBELISK__EXTERNAL__LISTENING_ADDR": "",
475- "OBELISK__WEBUI__LISTENING_ADDR": ""
477+ "OBELISK__WEBUI__LISTENING_ADDR": null
476478 },
477479 "init": {
478480 "entrypoint": [
0 commit comments