(pred: &RlsPredicate, known: &[&str])
| 375 | ]; |
| 376 | |
| 377 | fn check(pred: &RlsPredicate, known: &[&str]) -> crate::Result<()> { |
| 378 | match pred { |
| 379 | RlsPredicate::Compare { value, .. } => check_value(value, known), |
| 380 | RlsPredicate::Contains { set, element } => { |
| 381 | check_value(set, known)?; |
| 382 | check_value(element, known) |
| 383 | } |
| 384 | RlsPredicate::Intersects { left, right } => { |
| 385 | check_value(left, known)?; |
| 386 | check_value(right, known) |
| 387 | } |
| 388 | RlsPredicate::And(children) | RlsPredicate::Or(children) => { |
| 389 | for child in children { |
| 390 | check(child, known)?; |
| 391 | } |
| 392 | Ok(()) |
| 393 | } |
| 394 | RlsPredicate::Not(inner) => check(inner, known), |
| 395 | RlsPredicate::AlwaysTrue | RlsPredicate::AlwaysFalse => Ok(()), |
| 396 | } |
| 397 | } |
| 398 | |
| 399 | fn check_value(val: &PredicateValue, known: &[&str]) -> crate::Result<()> { |
| 400 | match val { |
no test coverage detected