2017-10-30 2 views
1

値が空の場合、Tokenのシリアル化をスキップします。バリアントの値が空の場合、バリアントのシリアル化をスキップしますか? (カスタムシリアル化)

impl<'a> Serialize for UriParam<'a> { 
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 
     where S: Serializer 
    { 
     match self { 
      &UriParam::Token(ref token) => { 
       if !token.is_empty() { 
        serializer.serialize_some(token) 
       } else { 
        // what should I return instead? 
       } 
      }, 
      &UriParam::URI(ref uri) => serializer.serialize_some(uri), 
      &UriParam::Param(ref option) => serializer.serialize_some(option), 
     } 
    } 
} 

答えて

関連する問題