Skip to content

Commit 19e109c

Browse files
committed
Use cfg_if! { } to simplify cfgs
1 parent 61272a0 commit 19e109c

File tree

4 files changed

+42
-43
lines changed

4 files changed

+42
-43
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ exclude = [".github", ".gitignore", "*.sh", "benchmark/**/*"]
1414
[dependencies]
1515
rgb = { version = "0.8.37", optional = true }
1616
anstyle = { version = "1.0.7", optional = true }
17+
cfg-if = "1.0.0"
1718

1819
[target.'cfg(unix)'.dependencies]
1920
memchr = "2.7.1"

src/lib.rs

Lines changed: 27 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -93,43 +93,44 @@
9393
//! [termbg]: https://docs.rs/termbg
9494
//! [terminal-light]: https://docs.rs/terminal-light
9595
96+
use cfg_if::cfg_if;
9697
use std::time::Duration;
9798

9899
mod color;
99100
mod error;
100101
mod fmt;
101102
mod os;
102-
#[cfg(unix)]
103-
mod xparsecolor;
104103

105-
#[cfg(unix)]
106-
mod xterm;
107-
108-
#[cfg(unix)]
109-
use xterm as imp;
110-
111-
#[cfg(not(unix))]
112-
use unsupported as imp;
104+
cfg_if! {
105+
if #[cfg(unix)] {
106+
mod xparsecolor;
107+
mod xterm;
108+
use xterm as imp;
109+
} else {
110+
mod unsupported;
111+
use unsupported as imp;
112+
}
113+
}
113114

114-
#[cfg(docsrs)]
115-
#[cfg_attr(docsrs, doc(cfg(docsrs)))]
116-
#[doc = include_str!("../doc/terminal-survey.md")]
117-
pub mod terminal_survey {}
115+
cfg_if! {
116+
if #[cfg(docsrs)] {
117+
#[doc(cfg(docsrs))]
118+
#[doc = include_str!("../doc/terminal-survey.md")]
119+
pub mod terminal_survey {}
118120

119-
#[cfg(docsrs)]
120-
#[cfg_attr(docsrs, doc(cfg(docsrs)))]
121-
#[doc = include_str!("../doc/windows.md")]
122-
pub mod windows_unsupported {}
121+
#[doc(cfg(docsrs))]
122+
#[doc = include_str!("../doc/windows.md")]
123+
pub mod windows_unsupported {}
123124

124-
#[cfg(docsrs)]
125-
#[cfg_attr(docsrs, doc(cfg(docsrs)))]
126-
#[doc = include_str!("../doc/latency-rustdoc.md")]
127-
pub mod latency {}
125+
#[doc(cfg(docsrs))]
126+
#[doc = include_str!("../doc/latency-rustdoc.md")]
127+
pub mod latency {}
128128

129-
#[cfg(docsrs)]
130-
#[cfg_attr(docsrs, doc(cfg(docsrs)))]
131-
#[doc = include_str!("../doc/feature-detection.md")]
132-
pub mod feature_detection {}
129+
#[doc(cfg(docsrs))]
130+
#[doc = include_str!("../doc/feature-detection.md")]
131+
pub mod feature_detection {}
132+
}
133+
}
133134

134135
#[cfg(doctest)]
135136
#[doc = include_str!("../readme.md")]
@@ -230,23 +231,6 @@ pub fn background_color(options: QueryOptions) -> Result<Color> {
230231
imp::background_color(options)
231232
}
232233

233-
#[cfg(not(unix))]
234-
mod unsupported {
235-
use crate::{Color, ColorPalette, Error, QueryOptions, Result};
236-
237-
pub(crate) fn color_palette(_options: QueryOptions) -> Result<ColorPalette> {
238-
Err(Error::UnsupportedTerminal)
239-
}
240-
241-
pub(crate) fn foreground_color(_options: QueryOptions) -> Result<Color> {
242-
Err(Error::UnsupportedTerminal)
243-
}
244-
245-
pub(crate) fn background_color(_options: QueryOptions) -> Result<Color> {
246-
Err(Error::UnsupportedTerminal)
247-
}
248-
}
249-
250234
#[cfg(test)]
251235
#[path = "color_scheme_tests.rs"]
252236
mod tests;

src/unsupported.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use crate::{Color, ColorPalette, Error, QueryOptions, Result};
2+
3+
pub(crate) fn color_palette(_options: QueryOptions) -> Result<ColorPalette> {
4+
Err(Error::UnsupportedTerminal)
5+
}
6+
7+
pub(crate) fn foreground_color(_options: QueryOptions) -> Result<Color> {
8+
Err(Error::UnsupportedTerminal)
9+
}
10+
11+
pub(crate) fn background_color(_options: QueryOptions) -> Result<Color> {
12+
Err(Error::UnsupportedTerminal)
13+
}

0 commit comments

Comments
 (0)