From ac01fe7b8239d25934c4d043db19eecb16d924a3 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Wed, 22 Jan 2025 17:13:01 -0500 Subject: [PATCH] Impl `FromStr` for Style --- src/encode.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/encode.rs b/src/encode.rs index 133b0e4..4f349d5 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -1,4 +1,4 @@ -use std::io::{self, ErrorKind, Read, Write}; +use std::{io::{self, ErrorKind, Read, Write}, str}; #[derive(Default, Clone, Copy)] pub enum Style { @@ -9,6 +9,23 @@ pub enum Style { Table, } +#[derive(Debug)] +pub struct ParseStyleError; + +impl str::FromStr for Style { + type Err = ParseStyleError; + + fn from_str(s: &str) -> Result { + match s { + "plain" => Ok(Self::Plain), + "spaces" => Ok(Self::Spaces), + "prefixed" => Ok(Self::Prefixed), + "table" => Ok(Self::Table), + _ => Err(ParseStyleError), + } + } +} + pub struct Encoder { reader: R, writer: W,