field_masks_merge

Macro field_masks_merge 

Source
macro_rules! field_masks_merge {
    ($mask:expr $(,)?) => { ... };
    ($first:expr, $($rest:expr),+ $(,)?) => { ... };
}
Expand description

Merges multiple read mask expressions into a single comma-separated String, normalizing overlapping paths.

Unlike field_mask!, this macro works with any expression that evaluates to &str, including const values from read_masks. The result is a heap-allocated String suitable for passing to the client’s read_mask parameter (e.g. Some(&mask)).

Overlapping paths are normalized: a broader path subsumes all of its sub-paths. For example, "effects" and "effects.bcs" are merged into just "effects".

§Examples

use iota_grpc_types::{field_masks_merge, read_masks::*};

let mask = field_masks_merge!(CHECKPOINT_RESPONSE_SUMMARY, CHECKPOINT_RESPONSE_CONTENTS,);
assert_eq!(mask, "checkpoint.summary,checkpoint.contents");

Broader paths subsume narrower ones:

use iota_grpc_types::field_masks_merge;

let mask = field_masks_merge!("effects", "effects.bcs");
assert_eq!(mask, "effects");