fn py_new()

in src/models/rule.rs [162:203]


  fn py_new(
    name: String, query: Option<String>, replace: Option<String>, replace_idx: Option<u8>,
    replace_node: Option<String>, holes: Option<HashSet<String>>, groups: Option<HashSet<String>>,
    filters: Option<HashSet<Filter>>, is_seed_rule: Option<bool>,
  ) -> Self {
    let mut rule_builder = RuleBuilder::default();

    rule_builder.name(name);
    if let Some(q) = query {
      rule_builder.query(CGPattern::new(q));
    }

    if let Some(replace) = replace {
      rule_builder.replace(replace);
    }

    if let Some(replace_idx) = replace_idx {
      rule_builder.replace_idx(replace_idx);
    }

    if let Some(replace_node) = replace_node {
      rule_builder.replace_node(replace_node);
    }

    if let Some(holes) = holes {
      rule_builder.holes(holes);
    }

    if let Some(groups) = groups {
      rule_builder.groups(groups);
    }

    if let Some(filters) = filters {
      rule_builder.filters(filters);
    }

    if let Some(is_seed_rule) = is_seed_rule {
      rule_builder.is_seed_rule(is_seed_rule);
    }

    rule_builder.build().unwrap()
  }