Crate notatin

Crate notatin 

Source

Modules§

base_block
cell
cell_big_data
cell_key_node
cell_key_security
cell_key_value
cell_value
cli_util
err
field_offset_len
field_serializers
file_info
filter
hive_bin_cell
hive_bin_header
log
marvin32
parser
parser_builder
parser_recover_deleted
progress
reg_item_map
state
sub_key_list_lf
sub_key_list_lh
sub_key_list_li
sub_key_list_ri
transaction_log
util

Macros§

impl_enum
impl_enum_from_value
impl_flags_from_bits
impl_serialize_for_bitflags
Via https://github.com/omerbenamram/mft
init_value_enum
This macro creates $enum_var of type {$class_name_prefix}Enum and initializes the appropriate variant depending on the value of $get_full_field_info
make_field_struct
make_file_offset_structs
This macro generates three objects: {class_name_prefix}Light: A struct which contains FieldLight objects for each field (value only) {class_name_prefix}Full: A struct which contains FieldFull objects for each field (value, offset, and length) {class_name_prefix}Enum: An enum with variants for the above two structs Accessor and setter functions are created on {class_name_prefix}Enum for each field. A default() function is created for {class_name_prefix}Enum which creates a default {class_name_prefix}Light variant
read_value_offset_length
This macro generates code which uses nom to read the specified data at the current $input. If $get_full_field_info is true, it will also determine the offset into the current buffer and the length of the data and generate the appropriate FieldTrait (FieldFull or FieldLight) object. Finally it will set the field in $struct_enum. Note that the value is made available outside of the macro in $var to ensure that the calling code has access to it for additional processing. Ex: read_value_offset_length! { input, start_pos_ptr, get_full_field_info, detail_enum, key_node_flag_bits, u16, le_u16 }