1#![deny(missing_docs)]
31
32#[cfg(test)] #[macro_use] extern crate assert_matches;
33
34pub use crate::command::Command;
35pub use crate::complete::{Completer, Completion, Suffix};
36pub use crate::function::Function;
37pub use crate::interface::Interface;
38pub use crate::prompter::Prompter;
39pub use crate::reader::{Reader, ReadResult};
40pub use crate::terminal::{DefaultTerminal, Signal, Terminal};
41pub use crate::writer::Writer;
42
43pub mod chars;
44pub mod command;
45pub mod complete;
46pub mod function;
47pub mod inputrc;
48pub mod interface;
49pub mod highlighting;
50pub mod memory;
51pub mod prompter;
52pub mod reader;
53pub mod table;
54pub mod terminal;
55
56mod util;
57pub mod variables;
58pub mod writer;
59
60#[cfg(unix)]
61#[path = "unix/mod.rs"]
62mod sys;
63
64#[cfg(windows)]
65#[path = "windows/mod.rs"]
66mod sys;
67
68#[cfg(test)]
69mod test {
70 use crate::interface::Interface;
71 use crate::terminal::{DefaultTerminal, Terminal};
72
73 fn assert_has_traits<T: 'static + Send + Sync>() {}
74
75 fn assert_generic_traits<T: 'static + Terminal>() {
76 assert_has_traits::<Interface<T>>();
77 }
78
79 #[test]
80 fn test_interface_traits() {
81 assert_generic_traits::<DefaultTerminal>();
82 }
83}