#![allow(unused, reason = "± std or linux")]
use devela::{IoResult, IoWrite};
crate::CONST! {
DOC_ANSI_PRINT = "
It abstracts away specific backend implementations.
# Example
```
# use devela::{Ansi, AnsiColor3, ansi_print};
ansi_print(&Ansi::ERASE_SCREEN_B);
ansi_print(&Ansi::CURSOR_MOVE3_B(120, 80));
ansi_print(&Ansi::COLORS_BRIGHT_BG_B(AnsiColor3::Blue, AnsiColor3::Black));
```
See also the [`ansi!`][crate::ansi] macro.
";
}
#[doc = crate::_tags!(term platform)]
#[doc = crate::_doc_location!("sys/os/term")]
#[doc = DOC_ANSI_PRINT!()]
#[cfg_attr(
nightly_doc,
doc(cfg(any(feature = "std", all(feature = "linux", feature = "unsafe_syscall"))))
)]
#[cfg(feature = "std")]
pub fn ansi_print(sequence: &[u8]) -> IoResult<()> {
crate::Io::stdout().write_all(sequence)
}
#[doc = crate::_tags!(term platform)]
#[doc = crate::_doc_location!("sys/os/term")]
#[doc = DOC_ANSI_PRINT!()]
#[cfg_attr(
nightly_doc,
doc(cfg(any(feature = "std", all(feature = "linux", feature = "unsafe_syscall"))))
)]
#[cfg(not(feature = "std"))]
#[cfg(all(feature = "linux", feature = "unsafe_syscall", not(miri), any_target_arch_linux))]
pub fn ansi_print(sequence: &[u8]) -> IoResult<()> {
crate::Linux::print_bytes(sequence).map_err(crate::LinuxError::to_io)
}
#[doc = crate::_tags!(term platform)]
#[doc = crate::_doc_location!("sys/os/term")]
#[cfg(feature = "std")]
#[cfg_attr(nightly_doc, doc(cfg(feature = "std")))]
pub fn ansi_print_std(sequence: &[u8]) -> IoResult<()> {
crate::Io::stdout().write_all(sequence)
}
#[doc = crate::_tags!(term linux)]
#[doc = crate::_doc_location!("sys/os/term")]
#[cfg_attr(nightly_doc, doc(cfg(all(feature = "linux", feature = "unsafe_syscall"))))]
#[cfg(all(feature = "linux", feature = "unsafe_syscall", not(miri), any_target_arch_linux))]
pub fn ansi_print_linux(sequence: &[u8]) -> crate::LinuxResult<()> {
crate::Linux::print_bytes(sequence)
}