diff options
author | Ivan Tham | 2022-05-14 14:28:37 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-05-22 01:26:32 +0000 |
commit | 1837b5e4a61f0230b3cd382ed487fa09be7b2b68 (patch) | |
tree | 1025a430cffa521be6f24cab7472769d94584e48 | |
parent | bfc4ff4dcfd9135924d90bb822f2e23ae9cb2420 (diff) |
Refactor Block with Default and bitflags
Specifying empty for bitflags is not recommended, it is now removed and added
Default. For BorderType, it now defaults to plain.
-rw-r--r-- | helix-tui/src/widgets/block.rs | 21 | ||||
-rw-r--r-- | helix-tui/src/widgets/mod.rs | 11 |
2 files changed, 13 insertions, 19 deletions
diff --git a/helix-tui/src/widgets/block.rs b/helix-tui/src/widgets/block.rs index 26223c3e..3c05a2a3 100644 --- a/helix-tui/src/widgets/block.rs +++ b/helix-tui/src/widgets/block.rs @@ -6,6 +6,7 @@ use crate::{ }; use helix_view::graphics::{Rect, Style}; +/// Border render type. Defaults to [`BorderType::Plain`]. #[derive(Debug, Clone, Copy, PartialEq)] pub enum BorderType { Plain, @@ -25,6 +26,12 @@ impl BorderType { } } +impl Default for BorderType { + fn default() -> BorderType { + BorderType::Plain + } +} + /// Base widget to be used with all upper level ones. It may be used to display a box border around /// the widget and/or add a title. /// @@ -40,7 +47,7 @@ impl BorderType { /// .border_type(BorderType::Rounded) /// .style(Style::default().bg(Color::Black)); /// ``` -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Default, Clone, PartialEq)] pub struct Block<'a> { /// Optional title place on the upper left of the block title: Option<Spans<'a>>, @@ -55,18 +62,6 @@ pub struct Block<'a> { style: Style, } -impl<'a> Default for Block<'a> { - fn default() -> Block<'a> { - Block { - title: None, - borders: Borders::NONE, - border_style: Default::default(), - border_type: BorderType::Plain, - style: Default::default(), - } - } -} - impl<'a> Block<'a> { pub fn title<T>(mut self, title: T) -> Block<'a> where diff --git a/helix-tui/src/widgets/mod.rs b/helix-tui/src/widgets/mod.rs index e5608a79..c0c3a994 100644 --- a/helix-tui/src/widgets/mod.rs +++ b/helix-tui/src/widgets/mod.rs @@ -27,17 +27,16 @@ use helix_view::graphics::Rect; bitflags! { /// Bitflags that can be composed to set the visible borders essentially on the block widget. + #[derive(Default)] pub struct Borders: u32 { - /// Show no border (default) - const NONE = 0b0000_0001; /// Show the top border - const TOP = 0b0000_0010; + const TOP = 0b0000_0001; /// Show the right border - const RIGHT = 0b0000_0100; + const RIGHT = 0b0000_0010; /// Show the bottom border - const BOTTOM = 0b000_1000; + const BOTTOM = 0b000_0100; /// Show the left border - const LEFT = 0b0001_0000; + const LEFT = 0b0000_1000; /// Show all borders const ALL = Self::TOP.bits | Self::RIGHT.bits | Self::BOTTOM.bits | Self::LEFT.bits; } |