commit 3ab66346610d681cf764f24bbdd8d5416d7ef1b6 Author: Nathan Fisher Date: Wed Jan 22 12:16:36 2025 -0500 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..1f73b8c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "b2" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..c9ffd86 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "b2" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/src/encode.rs b/src/encode.rs new file mode 100644 index 0000000..133b0e4 --- /dev/null +++ b/src/encode.rs @@ -0,0 +1,176 @@ +use std::io::{self, ErrorKind, Read, Write}; + +#[derive(Default, Clone, Copy)] +pub enum Style { + #[default] + Plain, + Spaces, + Prefixed, + Table, +} + +pub struct Encoder { + reader: R, + writer: W, + style: Style, + wrap: Option, +} + +impl Encoder { + pub fn new(reader: R, writer: W, style: Option