trait Filter

The way you configure your terminal behavior; a trivial wrapper around a function, though you should provide a good .toString method to make debugging easier. The [[TermInfo]] and [[TermAction]] types are its interface to the terminal.

[[Filter]]s are composed sequentially: if a filter returns None the next filter is tried, while if a filter returns Some that ends the cascade. While your op function interacts with the terminal purely through immutable case classes, the Filter itself is free to maintain its own state and mutate it whenever, even when returning None to continue the cascade.

Constructors

Members

val op : TermInfo => Option [ TermAction ]
[+] def identifier : String

the .toString of this object, except by making it separate we force the implementer to provide something and stop them from accidentally leaving it as t...

the .toString of this object, except by making it separate we force the implementer to provide something and stop them from accidentally leaving it as the meaningless default.

override def toString : String