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");