1#[cfg(not(any(feature = "auto", all(windows, feature = "wincon"))))]
3pub trait RawStream: std::io::Write + private::Sealed {}
4
5#[cfg(all(feature = "auto", not(all(windows, feature = "wincon"))))]
7pub trait RawStream: std::io::Write + is_terminal::IsTerminal + private::Sealed {}
8
9#[cfg(all(not(feature = "auto"), all(windows, feature = "wincon")))]
11pub trait RawStream: std::io::Write + anstyle_wincon::WinconStream + private::Sealed {}
12
13#[cfg(all(feature = "auto", all(windows, feature = "wincon")))]
15pub trait RawStream:
16 std::io::Write + is_terminal::IsTerminal + anstyle_wincon::WinconStream + private::Sealed
17{
18}
19
20impl RawStream for std::io::Stdout {}
21
22impl RawStream for std::io::StdoutLock<'static> {}
23
24impl RawStream for std::io::Stderr {}
25
26impl RawStream for std::io::StderrLock<'static> {}
27
28impl RawStream for crate::Buffer {}
29
30mod private {
31 pub trait Sealed {}
32
33 impl Sealed for std::io::Stdout {}
34
35 impl Sealed for std::io::StdoutLock<'static> {}
36
37 impl Sealed for std::io::Stderr {}
38
39 impl Sealed for std::io::StderrLock<'static> {}
40
41 impl Sealed for crate::Buffer {}
42}