Skip to main content

comfy_table/style/
mod.rs

1#[cfg(all(feature = "tty", not(feature = "reexport_crossterm")))]
2mod attribute;
3mod cell;
4#[cfg(all(feature = "tty", not(feature = "reexport_crossterm")))]
5mod color;
6mod column;
7/// Contains modifiers, that can be used to alter certain parts of a preset.\
8/// For instance, the [UTF8_ROUND_CORNERS](modifiers::UTF8_ROUND_CORNERS) replaces all corners with
9/// round UTF8 box corners.
10pub mod modifiers;
11/// This module provides styling presets for tables.\
12/// Every preset has an example preview.
13pub mod presets;
14mod table;
15
16pub use cell::CellAlignment;
17pub use column::{ColumnConstraint, Width};
18#[cfg(feature = "tty")]
19pub use styling_enums::{Attribute, Color};
20#[cfg(feature = "tty")]
21pub(crate) use styling_enums::{map_attribute, map_color};
22pub use table::{ContentArrangement, TableComponent};
23
24/// Convenience module to have cleaner and "identical" conditional re-exports for style enums.
25#[cfg(all(feature = "tty", not(feature = "reexport_crossterm")))]
26mod styling_enums {
27    pub use super::{attribute::*, color::*};
28}
29
30/// Re-export the crossterm type directly instead of using the internal mirrored types.
31/// This result in possible ABI incompatibilities when using comfy_table and crossterm in the same
32/// project with different versions, but may also be very convenient for developers.
33#[cfg(all(feature = "tty", feature = "reexport_crossterm"))]
34mod styling_enums {
35    /// Attributes used for styling cell content. Reexport of crossterm's
36    /// [Attributes](crossterm::style::Attribute) enum.
37    pub use crossterm::style::Attribute;
38    /// Colors used for styling cell content. Reexport of crossterm's
39    /// [Color](crossterm::style::Color) enum.
40    pub use crossterm::style::Color;
41
42    /// Convenience function to have the same mapping code for reexported types.
43    #[inline]
44    pub(crate) fn map_attribute(attribute: Attribute) -> Attribute {
45        attribute
46    }
47
48    /// Convenience function to have the same mapping code for reexported types.
49    #[inline]
50    pub(crate) fn map_color(color: Color) -> Color {
51        color
52    }
53}