in src/models/filter.rs [109:132]
fn py_new(
enclosing_node: Option<String>, outermost_enclosing_node: Option<String>,
not_enclosing_node: Option<String>, not_contains: Option<Vec<String>>,
contains: Option<String>, at_least: Option<u32>, at_most: Option<u32>,
child_count: Option<u32>, sibling_count: Option<u32>,
) -> Self {
FilterBuilder::default()
.enclosing_node(CGPattern::new(enclosing_node.unwrap_or_default()))
.outermost_enclosing_node(CGPattern::new(outermost_enclosing_node.unwrap_or_default()))
.not_enclosing_node(CGPattern::new(not_enclosing_node.unwrap_or_default()))
.not_contains(
not_contains
.unwrap_or_default()
.iter()
.map(|x| CGPattern::new(x.to_string()))
.collect_vec(),
)
.contains(CGPattern::new(contains.unwrap_or_default()))
.at_least(at_least.unwrap_or(default_contains_at_least()))
.at_most(at_most.unwrap_or(default_contains_at_most()))
.child_count(child_count.unwrap_or(default_child_count()))
.sibling_count(sibling_count.unwrap_or(default_sibling_count()))
.build()
}