#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(feature = "alloc")]
extern crate alloc;
#[cfg(feature = "load")]
pub mod load;
mod append;
mod default;
mod replace;
mod update;
use serde::Deserializer;
#[cfg(feature = "derive")]
pub use figa_proc::Figa;
pub trait Figa {
fn update<'de, D>(&mut self, deserializer: D) -> Result<(), D::Error>
where
D: Deserializer<'de>;
}
#[doc(hidden)]
pub mod private {
pub use str;
pub use core::{
fmt::{Formatter, Result as FmtResult},
hash::Hash,
result::Result::{self, Err, Ok},
};
pub use serde::de::{
Deserialize, DeserializeOwned, DeserializeSeed, Deserializer, Error as DeError, MapAccess,
SeqAccess, Visitor,
};
pub use crate::{append::Append, default::Default, replace::Replace, update::Update, Figa};
pub struct UnitStructVisitor;
impl<'de> Visitor<'de> for UnitStructVisitor {
type Value = ();
fn expecting(&self, formatter: &mut core::fmt::Formatter) -> core::fmt::Result {
formatter.write_str("unit struct")
}
fn visit_unit<E>(self) -> Result<(), E>
where
E: DeError,
{
Ok(())
}
}
}