From f5cd3a20f12829ef9eb36acc158cb3521203b415 Mon Sep 17 00:00:00 2001 From: Baptiste Gelez Date: Tue, 14 May 2019 19:31:10 +0100 Subject: [PATCH] Remove gettext-utils --- gettext-utils/Cargo.toml | 9 ------- gettext-utils/src/lib.rs | 58 ---------------------------------------- 2 files changed, 67 deletions(-) delete mode 100644 gettext-utils/Cargo.toml delete mode 100644 gettext-utils/src/lib.rs diff --git a/gettext-utils/Cargo.toml b/gettext-utils/Cargo.toml deleted file mode 100644 index 6f53e8e..0000000 --- a/gettext-utils/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "gettext-utils" -version = "0.1.0" -authors = ["Baptiste Gelez "] -description = "Utility crate for gettext-macros" -license = "GPL-3.0" -edition = "2018" - -[dependencies] diff --git a/gettext-utils/src/lib.rs b/gettext-utils/src/lib.rs deleted file mode 100644 index 4f1e60a..0000000 --- a/gettext-utils/src/lib.rs +++ /dev/null @@ -1,58 +0,0 @@ -#[derive(Debug)] -#[doc(hidden)] -pub enum FormatError { - UnmatchedCurlyBracket, - InvalidPositionalArgument, -} - -#[doc(hidden)] -pub fn try_format<'a>( - str_pattern: &'a str, - argv: &[::std::boxed::Box], -) -> ::std::result::Result<::std::string::String, FormatError> { - use ::std::fmt::Write; - use ::std::iter::Iterator; - - //first we parse the pattern - let mut pattern = vec![]; - let mut vars = vec![]; - let mut finish_or_fail = false; - for (i, part) in str_pattern.split('}').enumerate() { - if finish_or_fail { - return ::std::result::Result::Err(FormatError::UnmatchedCurlyBracket); - } - if part.contains('{') { - let mut part = part.split('{'); - let text = part.next().unwrap(); - let arg = part.next().ok_or(FormatError::UnmatchedCurlyBracket)?; - if part.next() != ::std::option::Option::None { - return ::std::result::Result::Err(FormatError::UnmatchedCurlyBracket); - } - pattern.push(text); - vars.push( - argv.get::(if arg.len() > 0 { - arg.parse() - .map_err(|_| FormatError::InvalidPositionalArgument)? - } else { - i - }) - .ok_or(FormatError::InvalidPositionalArgument)?, - ); - } else { - finish_or_fail = true; - pattern.push(part); - } - } - - //then we generate the result String - let mut res = ::std::string::String::with_capacity(str_pattern.len()); - let mut pattern = pattern.iter(); - let mut vars = vars.iter(); - while let ::std::option::Option::Some(text) = pattern.next() { - res.write_str(text).unwrap(); - if let ::std::option::Option::Some(var) = vars.next() { - res.write_str(&format!("{}", var)).unwrap(); - } - } - ::std::result::Result::Ok(res) -}