pub mod ascii_writer;
pub mod markdown_writer;

pub struct Table {
  rows: Vec<Vec<String>>,
  has_headers: bool,
}

pub struct Error {}

pub trait Read {
  fn read(&mut self) -> Result<Table, Error>;
}

pub trait Write {
  fn write(&self, table: Table) -> Result<(), Error>;
}

pub mod ascii_writer;
pub mod markdown_writer;

--- 
+++ 
@@ -1,17 +1,2 @@
 pub mod ascii_writer;
 pub mod markdown_writer;
-
-pub struct Table {
-  rows: Vec<Vec<String>>,
-  has_headers: bool,
-}
-
-pub struct Error {}
-
-pub trait Read {
-  fn read(&mut self) -> Result<Table, Error>;
-}
-
-pub trait Write {
-  fn write(&self, table: Table) -> Result<(), Error>;
-}
Add Table type, Read, Write trait
