rsvim_core 0.1.2

The core library for RSVIM text editor.
Documentation
//! Headless mode writer.

use crate::evloop::writer::StdoutWritable;
use crate::prelude::*;
use crate::ui::canvas::Canvas;

#[derive(Debug)]
/// Headless mode writer, it prints to terminal command line.
pub struct HeadlessWriter {}

impl HeadlessWriter {
  pub fn new() -> Self {
    Self {}
  }
}

impl StdoutWritable for HeadlessWriter {
  fn init(&self) -> IoResult<()> {
    Ok(())
  }

  fn init_complete(&mut self, _canvas: &mut Canvas) -> IoResult<()> {
    Ok(())
  }

  fn shutdown(&self) -> IoResult<()> {
    Ok(())
  }

  fn write(&mut self, _canvas: &mut Canvas) -> IoResult<()> {
    Ok(())
  }
}

impl Default for HeadlessWriter {
  fn default() -> Self {
    Self::new()
  }
}