Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
term: Introduce `PaintTarget`
Erik Kundt committed 7 months ago
commit ee124197b5782205c8ea793bcb523a2e813d4265
parent 646d4360e7d905f0a9ec87d32c6768c5390eabf3
1 file changed +20 -0
modified crates/radicle-term/src/io.rs
@@ -46,6 +46,26 @@ pub static CONFIG: LazyLock<RenderConfig> = LazyLock::new(|| RenderConfig {
    ..RenderConfig::default_colored()
});

+
/// Target for paint operations.
+
///
+
/// This tells a [`Spinner`] object where to paint to.
+
#[derive(Clone)]
+
pub enum PaintTarget {
+
    Stdout,
+
    Stderr,
+
    Hidden,
+
}
+

+
impl PaintTarget {
+
    pub fn writer(&self) -> Box<dyn io::Write> {
+
        match self {
+
            PaintTarget::Stdout => Box::new(io::stdout()),
+
            PaintTarget::Stderr => Box::new(io::stderr()),
+
            PaintTarget::Hidden => Box::new(io::sink()),
+
        }
+
    }
+
}
+

#[macro_export]
macro_rules! info {
    ($writer:expr; $($arg:tt)*) => ({