Instead, perform the filtering for each rule as we go. This avoids creating a separate list of rules, which was ~5% of runtime when mousing around on the Discord web interface.
CanonicalCode::clear()
this
with
FixedMemoryStream::[readonly_]bytes()