private static WriterEntriesPackets FilterAll(IEnumerable <Rule> rules, List <Packet> packets) { Func <IEnumerable <Rule>, Func <Packet, WriterEntriesMaybePacket> > partiallyAppliedFilterOne = rs => packet => FilterOne(rs, packet); return(from _ in LogMsg("STARTING PACKET FILTER") from @out in GroupSame(new ListMonoid <Entry>(), MergeEntries, packets, partiallyAppliedFilterOne(rules)) from __ in LogMsg("STOPPING PACKET FILTER") select Maybe.CatMaybes(@out)); }
public void CatMaybes() { var maybes = new[] { Maybe.Just(1), Maybe.Just(2), Maybe.Nothing <int>(), Maybe.Just(4), Maybe.Nothing <int>(), Maybe.Just(6) }; var actual = Maybe.CatMaybes(maybes); Assert.That(actual, Is.EqualTo(new[] { 1, 2, 4, 6 })); }