Skip to main content

MmdbDecode

Trait MmdbDecode 

Source
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§

Source

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".

Implementors§