Function serde_aux::field_attributes::deserialize_rw_lock_option_number_from_string[][src]

pub fn deserialize_rw_lock_option_number_from_string<'de, T, D>(
    deserializer: D
) -> Result<RwLock<Option<T>>, D::Error> where
    D: Deserializer<'de>,
    T: FromStr + Deserialize<'de>,
    <T as FromStr>::Err: Display

Deserializes a RwLock option number from string or a number. Same logic as "deserialize_option_number_from_string".

Example:

use serde_aux::prelude::*;
use std::sync::RwLock;

#[derive(Debug, serde::Deserialize)]
struct MyStruct {
    #[serde(default, deserialize_with = "deserialize_rw_lock_option_number_from_string")]
    v: RwLock<Option<f32>>
}

let a = serde_qs::from_str::<MyStruct>("v=-0.1").unwrap();
assert_eq!(*a.v.read().unwrap(), Some(-0.1));