pub struct CompiledMasking { /* private fields */ }Expand description
Snapshot-compiled form of a Masking policy (DW-029): every
pointer parsed once at snapshot-compile time. The effective pointer
set is resolved per request (the floor plus the authenticated
consumer’s groups — the union rule), which is why groups stay a map
here rather than being flattened at compile time.
Implementations§
Source§impl CompiledMasking
impl CompiledMasking
Sourcepub fn compile(cfg: &Masking) -> CompiledMasking
pub fn compile(cfg: &Masking) -> CompiledMasking
Compile a (validated) masking policy. Validation guarantees
every pointer parses, so compilation drops nothing on any
publishable config (the same unreachable-skip contract as
CompiledJsonTransform::compile).
Sourcepub fn apply(
&self,
doc: &mut Value,
consumer_groups: &[String],
) -> Result<usize, JsonTransformError>
pub fn apply( &self, doc: &mut Value, consumer_groups: &[String], ) -> Result<usize, JsonTransformError>
Mask doc in place for a consumer in consumer_groups: every
pointer in the floor plus every listed group the consumer
belongs to is replaced with MASKED_VALUE. Returns how many
DISTINCT pointers were applied (the audit count; a pointer
listed in the floor and in one or more groups applies once).
Fails on the first pointer that does not resolve — the
strictness rule the DW-028 transform argues for, mandatory in
the redaction direction: a silent miss is the leak.
Trait Implementations§
Source§impl Clone for CompiledMasking
impl Clone for CompiledMasking
Source§fn clone(&self) -> CompiledMasking
fn clone(&self) -> CompiledMasking
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CompiledMasking
impl Debug for CompiledMasking
Source§impl PartialEq for CompiledMasking
impl PartialEq for CompiledMasking
impl StructuralPartialEq for CompiledMasking
Auto Trait Implementations§
impl Freeze for CompiledMasking
impl RefUnwindSafe for CompiledMasking
impl Send for CompiledMasking
impl Sync for CompiledMasking
impl Unpin for CompiledMasking
impl UnwindSafe for CompiledMasking
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more