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.
imgbot
Ivan Tham 3 years ago committed by Blaž Hrastnik
parent bfc4ff4dcf
commit 1837b5e4a6

@ -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

@ -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;
}

Loading…
Cancel
Save