diff --git a/Cargo.lock b/Cargo.lock index cbd64db..a30a41e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -188,9 +188,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -198,9 +198,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", @@ -212,9 +212,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", @@ -441,9 +441,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru" @@ -462,9 +462,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "ff70ce3e48ae43fa075863cef62e8b43b71a4f2382229920e0df362592919430" dependencies = [ "adler2", ] @@ -501,9 +501,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "palette" @@ -791,9 +791,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ "bitflags", "errno", @@ -928,13 +928,13 @@ dependencies = [ "fastrand", "getrandom 0.3.2", "once_cell", - "rustix 1.0.3", + "rustix 1.0.5", "windows-sys 0.59.0", ] [[package]] name = "tengri" -version = "0.4.0" +version = "0.5.0" dependencies = [ "tengri_dsl", "tengri_input", @@ -944,7 +944,7 @@ dependencies = [ [[package]] name = "tengri_dsl" -version = "0.4.0" +version = "0.5.0" dependencies = [ "itertools 0.14.0", "konst", @@ -955,7 +955,7 @@ dependencies = [ [[package]] name = "tengri_input" -version = "0.4.0" +version = "0.5.0" dependencies = [ "tengri_dsl", "tengri_tui", @@ -963,7 +963,7 @@ dependencies = [ [[package]] name = "tengri_output" -version = "0.4.0" +version = "0.5.0" dependencies = [ "proptest", "proptest-derive", @@ -974,7 +974,7 @@ dependencies = [ [[package]] name = "tengri_tui" -version = "0.4.0" +version = "0.5.0" dependencies = [ "atomic_float", "better-panic", diff --git a/Cargo.toml b/Cargo.toml index bcd0bd8..fc81658 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "0.4.0" +version = "0.5.0" [workspace] resolver = "2" diff --git a/tui/src/tui_content.rs b/tui/src/tui_content.rs index 3bd639d..d2a6b9a 100644 --- a/tui/src/tui_content.rs +++ b/tui/src/tui_content.rs @@ -152,8 +152,11 @@ pub trait TuiStyle { fn fg_bg > (fg: Color, bg: Color, w: R) -> Background> { Background(bg, Foreground(fg, w)) } - fn bold > (enable: bool, w: R) -> Bold { - Bold(enable, w) + fn modify > (enable: bool, modifier: Modifier, w: R) -> Modify { + Modify(enable, modifier, w) + } + fn bold > (enable: bool, w: R) -> Modify { + Self::modify(enable, Modifier::BOLD, w) } fn border , S: BorderStyle> (enable: bool, style: S, w: R) -> Bordered { Bordered(enable, style, w) @@ -162,16 +165,7 @@ pub trait TuiStyle { impl TuiStyle for Tui {} -pub struct Bold>(pub bool, R); -impl> Content for Bold { - fn content (&self) -> impl Render { &self.1 } - fn render (&self, to: &mut TuiOut) { - to.fill_bold(to.area(), self.0); - self.1.render(to) - } -} - -pub struct Foreground>(pub Color, R); +pub struct Foreground>(pub Color, pub R); impl> Content for Foreground { fn content (&self) -> impl Render { &self.1 } fn render (&self, to: &mut TuiOut) { @@ -180,7 +174,7 @@ impl> Content for Foreground { } } -pub struct Background>(pub Color, R); +pub struct Background>(pub Color, pub R); impl> Content for Background { fn content (&self) -> impl Render { &self.1 } fn render (&self, to: &mut TuiOut) { @@ -189,6 +183,15 @@ impl> Content for Background { } } +pub struct Modify>(pub bool, pub Modifier, pub R); +impl> Content for Modify { + fn content (&self) -> impl Render { &self.2 } + fn render (&self, to: &mut TuiOut) { + to.fill_mod(to.area(), self.0, self.1); + self.2.render(to) + } +} + pub struct Styled>(pub Option