Skip to main content

impl_structured_driver

Macro impl_structured_driver 

Source
macro_rules! impl_structured_driver {
    (
        driver = $driver:ident,
        name = $name:literal,
        extensions = [$($ext:literal),+ $(,)?],
        value_ty = $value:ty,

        obj_pat = |$obj_map:ident| $obj_arm:pat,
        arr_pat = |$arr_vec:ident| $arr_arm:pat,

        new_map = $new_map:expr,
        wrap_map = |$wrap_m:ident| $wrap_map_expr:expr,
        wrap_arr = |$wrap_v:ident| $wrap_arr_expr:expr,

        key_set = |$ks_map:ident| $ks_expr:expr,
        map_get = |$mg_map:ident, $mg_key:ident| $mg_expr:expr,
        map_insert = |$mi_map:ident, $mi_key:ident, $mi_val:ident| $mi_expr:expr,

        val_str = |$vs_val:ident| $vs_expr:expr,
        child_path = |$cp_parent:ident, $cp_key:ident| $cp_expr:expr,

        parse_val = |$pv_src:ident| $pv_expr:expr,
        serialize_val = |$sv_val:ident| $sv_expr:expr,

        arrow = $arrow:literal,
    ) => { ... };
}