Struct serde_with::NoneAsEmptyString [−][src]
pub struct NoneAsEmptyString;
De/Serialize a Option
<
String
>
type while transforming the empty string to None
Convert an Option
<T>
from/to string using FromStr
and AsRef
<
str
>
implementations.
An empty string is deserialized as None
and a None
vice versa.
The same functionality is also available as serde_with::rust::string_empty_as_none
compatible with serde’s with-annotation.
Examples
#[serde_as] #[derive(Deserialize, Serialize)] struct A { #[serde_as(as = "NoneAsEmptyString")] tags: Option<String>, } let v: A = serde_json::from_value(json!({ "tags": "" })).unwrap(); assert_eq!(None, v.tags); let v: A = serde_json::from_value(json!({ "tags": "Hi" })).unwrap(); assert_eq!(Some("Hi".to_string()), v.tags); let x = A { tags: Some("This is text".to_string()), }; assert_eq!(json!({ "tags": "This is text" }), serde_json::to_value(&x).unwrap()); let x = A { tags: None, }; assert_eq!(json!({ "tags": "" }), serde_json::to_value(&x).unwrap());
Trait Implementations
impl Clone for NoneAsEmptyString
[src]
impl Clone for NoneAsEmptyString
[src]fn clone(&self) -> NoneAsEmptyString
[src]
fn clone(&self) -> NoneAsEmptyString
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for NoneAsEmptyString
[src]
impl Debug for NoneAsEmptyString
[src]impl Default for NoneAsEmptyString
[src]
impl Default for NoneAsEmptyString
[src]fn default() -> NoneAsEmptyString
[src]
fn default() -> NoneAsEmptyString
[src]Returns the “default value” for a type. Read more
impl<'de, Str> DeserializeAs<'de, Option<Str>> for NoneAsEmptyString where
Str: for<'a> From<&'a str>,
[src]
impl<'de, Str> DeserializeAs<'de, Option<Str>> for NoneAsEmptyString where
Str: for<'a> From<&'a str>,
[src]fn deserialize_as<D>(deserializer: D) -> Result<Option<Str>, D::Error> where
D: Deserializer<'de>,
[src]
fn deserialize_as<D>(deserializer: D) -> Result<Option<Str>, D::Error> where
D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer.
impl<AsRefStr> SerializeAs<Option<AsRefStr>> for NoneAsEmptyString where
AsRefStr: AsRef<str>,
[src]
impl<AsRefStr> SerializeAs<Option<AsRefStr>> for NoneAsEmptyString where
AsRefStr: AsRef<str>,
[src]fn serialize_as<S>(
source: &Option<AsRefStr>,
serializer: S
) -> Result<S::Ok, S::Error> where
S: Serializer,
[src]
fn serialize_as<S>(
source: &Option<AsRefStr>,
serializer: S
) -> Result<S::Ok, S::Error> where
S: Serializer,
[src]Serialize this value into the given Serde serializer.
impl Copy for NoneAsEmptyString
[src]
Auto Trait Implementations
impl RefUnwindSafe for NoneAsEmptyString
impl Send for NoneAsEmptyString
impl Sync for NoneAsEmptyString
impl Unpin for NoneAsEmptyString
impl UnwindSafe for NoneAsEmptyString
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more