Skip to content

Commit

Permalink
Policy: derive Proxy from WithConv, not Clause
Browse files Browse the repository at this point in the history
  • Loading branch information
kitbellew committed Dec 19, 2024
1 parent a8dfbee commit 3d24d4c
Showing 1 changed file with 6 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -356,30 +356,23 @@ object Policy {

private class Proxy(policy: Policy, factory: Policy => Pf)(implicit
fl: FileLine,
) extends Clause {
) extends WithConv {
override val f: Pf = factory(policy)
override def rank: Int = policy.rank

override def filter(pred: Clause => Boolean): Policy =
if (!pred(this)) NoPolicy else Proxy(policy.filter(pred))(factory)

override def exists(pred: Clause => Boolean): Boolean = policy.exists(pred)

override def switch(trigger: T, on: Boolean): Policy = {
val switched = policy.switch(trigger, on)
if (switched eq policy) this else Proxy(switched)(factory)
override protected def conv(pred: Policy => Policy): Policy = {
val filtered = pred(policy)
if (filtered eq policy) this else Proxy(filtered)(factory)
}

override def unexpired(split: Split, nextft: FT): Policy =
Proxy(policy.unexpired(split, nextft))(factory)
override def exists(pred: Clause => Boolean): Boolean = policy.exists(pred)

override def appliesUntil(nextft: FT)(pred: Clause => Boolean): Boolean =
policy.appliesUntil(nextft)(pred)

override def noDequeue: Boolean = policy.noDequeue

override val prefix: String = "*"
override def suffix: String = s"($policy)"
override def toString: String = s"*($policy)"
}

final class Map(
Expand Down

0 comments on commit 3d24d4c

Please sign in to comment.