libellule 0.1.0

Unofficial implementation of the PRONOTE protocol
Documentation
use serde::Deserialize;
use serde_with::DeserializeAs;

#[derive(Deserialize, Debug)]
pub struct Value<T> {
    #[serde(rename = "V")]
    pub value: T,
}

pub struct FromValue;

impl<'de, T> DeserializeAs<'de, T> for FromValue
where
    T: Deserialize<'de>,
{
    fn deserialize_as<D>(deserializer: D) -> Result<T, D::Error>
    where
        D: serde::Deserializer<'de>,
    {
        Value::<T>::deserialize(deserializer).map(|value| value.value)
    }
}