pub trait MmdbDecode<'a>: Sized {
// Required method
fn decode(value: &ValueRef<'a>) -> Result<Self>;
}Expand description
Trait implemented by #[derive(MmdbDecode)].
Implement this trait manually for custom decoding behavior, or derive it for a typed MMDB map. Borrowed fields must not outlive the source bytes.
Required Methods§
Sourcefn decode(value: &ValueRef<'a>) -> Result<Self>
fn decode(value: &ValueRef<'a>) -> Result<Self>
Decodes one already-parsed MMDB value into Self.
Returns a type-mismatch error if required fields are absent or invalid.
§Examples
use libmaxminddb_rs::{MmdbDecode, ValueRef};
#[derive(MmdbDecode)]
struct Record<'a> { category: &'a str }
let value = ValueRef::Map(vec![("category", ValueRef::Utf8("example"))]);
let record = Record::decode(&value)?;
assert_eq!(record.category, "example");Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".