12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //! Colours, colour schemes, and terminal styling.
- use ansi_term::Style;
- use ansi_term::Color::*;
- /// The **colours** are used to paint the input.
- #[derive(Debug, Default)]
- pub struct Colours {
- pub qname: Style,
- pub answer: Style,
- pub authority: Style,
- pub additional: Style,
- pub a: Style,
- pub aaaa: Style,
- pub caa: Style,
- pub cname: Style,
- pub hinfo: Style,
- pub loc: Style,
- pub mx: Style,
- pub ns: Style,
- pub naptr: Style,
- pub opt: Style,
- pub ptr: Style,
- pub sshfp: Style,
- pub soa: Style,
- pub srv: Style,
- pub tlsa: Style,
- pub txt: Style,
- pub unknown: Style,
- }
- impl Colours {
- /// Create a new colour palette that has a variety of different styles
- /// defined. This is used by default.
- pub fn pretty() -> Self {
- Self {
- qname: Blue.bold(),
- answer: Style::default(),
- authority: Cyan.normal(),
- additional: Green.normal(),
- a: Green.bold(),
- aaaa: Green.bold(),
- caa: Red.normal(),
- cname: Yellow.normal(),
- hinfo: Yellow.normal(),
- loc: Yellow.normal(),
- mx: Cyan.normal(),
- naptr: Green.normal(),
- ns: Red.normal(),
- opt: Purple.normal(),
- ptr: Red.normal(),
- sshfp: Cyan.normal(),
- soa: Purple.normal(),
- srv: Cyan.normal(),
- tlsa: Yellow.normal(),
- txt: Yellow.normal(),
- unknown: White.on(Red),
- }
- }
- /// Create a new colour palette where no styles are defined, causing
- /// output to be rendered as plain text without any formatting.
- /// This is used when output is not to a terminal.
- pub fn plain() -> Self {
- Self::default()
- }
- }
|