(all: &bool, lhs: Self::Relation, rhs: Self::Relation)
| 55 | |
| 56 | impl AlgExcept for Hir { |
| 57 | fn except(all: &bool, lhs: Self::Relation, rhs: Self::Relation) -> Self::Relation { |
| 58 | if *all { |
| 59 | let rhs = rhs.negate(); |
| 60 | HirRelationExpr::union(lhs, rhs).threshold() |
| 61 | } else { |
| 62 | let lhs = lhs.distinct(); |
| 63 | let rhs = rhs.distinct().negate(); |
| 64 | HirRelationExpr::union(lhs, rhs).threshold() |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | fn un_except<'a>(expr: &'a Self::Relation) -> Option<Except<'a, Self>> { |
| 69 | let mut result = None; |