From 3ab66346610d681cf764f24bbdd8d5416d7ef1b6 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Wed, 22 Jan 2025 12:16:36 -0500 Subject: [PATCH] Initial commit --- .gitignore | 1 + Cargo.lock | 7 ++ Cargo.toml | 6 ++ src/encode.rs | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 4 ++ 5 files changed, 194 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/encode.rs create mode 100644 src/lib.rs 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