Open OndrejSpanel opened 7 months ago
It can be even made a little bit more general:
implicit class OptionValueOps[T](private val o: Option[T]) extends AnyVal {
final def diff(that: Iterable[T]): Option[T] = {
if (o.exists(that.contains)) None
else o
}
}
Note: o.exists(that.contains)
should be more performant than that.exists(o.contains)
when that.contains
is more efficient than that.exists
, e.g. for Set
.
Add
diff
toOption
for a symmetry withSeq
. Reference implementation: