Function smartnoise_validator::utilities::propagate_properties[][src]

pub fn propagate_properties(
    privacy_definition: &Option<PrivacyDefinition>,
    computation_graph: &mut HashMap<u32, Component>,
    release: &mut Release,
    properties: Option<HashMap<u32, ValueProperties>>,
    dynamic: bool
) -> Result<(HashMap<u32, ValueProperties>, Vec<Error>)>

Given an analysis and release, attempt to propagate properties across the entire computation graph.

The graph is traversed, and every node is attempted to be expanded, so that validation occurs at the most granular level. Each component in the graph implements the Component trait, which contains the propagate_properties function. While traversing, properties are checked and propagated forward at every point in the graph. If the requirements for any node are not met, the propagation fails, and the analysis is not valid.

Returns