A crate for reading a line using libreadline. Contrary to many other crates, a character-based interface for inputting text is provided, which allows for externally managed reading of input. That is, by default libreadline takes ownership of stdin, stdout, and the terminal. We try as hard as we can to set things up to not have it do that. With that, the only interface that is necessary is one for feeding of a single character, that could have been retrieved by any means (including through events in X11 or other graphical environments).
Note that libreadline does not have a clear separation between the core logic of handling input (based on characters) and displaying them. It is highly questionable whether this crate achieved a 100% isolation.
A struct representing a context for reading a line using libreadline.