diff --git a/Cargo.toml b/Cargo.toml index cb7a6d6..e543e5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,11 +23,16 @@ include = [ [features] default = ["crossterm"] +# Features to use tui-rs crossterm = ["dep:crossterm", "tui/crossterm"] termion = ["dep:termion", "tui/termion"] -search = ["dep:regex"] +your-backend = ["tui"] +# Features to use ratatui ratatui-crossterm = ["dep:crossterm-026", "ratatui/crossterm"] ratatui-termion = ["dep:termion", "ratatui/termion"] +ratatui-your-backend = ["ratatui"] +# Other optional features +search = ["dep:regex"] [dependencies] crossterm = { package = "crossterm", version = "0.25", optional = true } diff --git a/src/lib.rs b/src/lib.rs index 72a2e47..39d3081 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,14 +10,6 @@ ))] compile_error!("tui-rs support and ratatui support are exclussive. only one of them can be enabled at the same time. see https://github.com/rhysd/tui-textarea"); -#[cfg(not(any( - feature = "crossterm", - feature = "termion", - feature = "ratatui-crossterm", - feature = "ratatui-termion", -)))] -compile_error!("neither crossterm nor termion is enabled in features. see https://github.com/rhysd/tui-textarea"); - mod cursor; mod highlight; mod history; @@ -30,9 +22,17 @@ mod util; mod widget; mod word; -#[cfg(any(feature = "ratatui-crossterm", feature = "ratatui-termion"))] +#[cfg(any( + feature = "ratatui-crossterm", + feature = "ratatui-termion", + feature = "ratatui-your-backend", +))] use ratatui as tui; -#[cfg(not(any(feature = "ratatui-crossterm", feature = "ratatui-termion")))] +#[cfg(not(any( + feature = "ratatui-crossterm", + feature = "ratatui-termion", + feature = "ratatui-your-backend", +)))] #[allow(clippy::single_component_path_imports)] use tui;