This PR simply extracts three methods for handling multi-byte strings containing ansi escape sequences from DrawsBoxes into a separate HandlesStrings trait. The methods have remained wholly unchanged, so backwards compatibility is fully maintained.
I've written a new trait for a separate feature that needs this same functionality, but it doesn't draw boxes, so it doesn't make sense to use the DrawsBoxes trait. If I redefine these methods in my new trait, I get a method name collision when using both these traits in the same prompt. Having both traits consume this trait avoids that issue. I feel like this separates these concerns better now as well, since these methods aren't strictly limited to boxes.
This PR simply extracts three methods for handling multi-byte strings containing ansi escape sequences from
DrawsBoxes
into a separateHandlesStrings
trait. The methods have remained wholly unchanged, so backwards compatibility is fully maintained.I've written a new trait for a separate feature that needs this same functionality, but it doesn't draw boxes, so it doesn't make sense to use the
DrawsBoxes
trait. If I redefine these methods in my new trait, I get a method name collision when using both these traits in the same prompt. Having both traits consume this trait avoids that issue. I feel like this separates these concerns better now as well, since these methods aren't strictly limited to boxes.