From 3d69403dee5d2432e1421e9c7932e3e24263d346 Mon Sep 17 00:00:00 2001 From: bluss Date: Sun, 16 Oct 2016 11:54:44 +0200 Subject: [PATCH] Use encode_utf8 from crate odds --- Cargo.toml | 2 +- src/array_string.rs | 2 +- src/char_ext.rs | 52 --------------------------------------------- src/lib.rs | 1 - 4 files changed, 2 insertions(+), 55 deletions(-) delete mode 100644 src/char_ext.rs diff --git a/Cargo.toml b/Cargo.toml index 467412c..133f5aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/bluss/arrayvec" keywords = ["stack", "vector", "array", "data-structure", "no_std"] [dependencies.odds] -version = "0.2.12" +version = "0.2.23" default-features = false [dependencies.nodrop] diff --git a/src/array_string.rs b/src/array_string.rs index d5bd904..6750975 100644 --- a/src/array_string.rs +++ b/src/array_string.rs @@ -10,7 +10,7 @@ use std::slice; use array::Array; use array::Index; use CapacityError; -use char_ext::encode_utf8; +use odds::char::encode_utf8; /// A string with a fixed capacity. /// diff --git a/src/char_ext.rs b/src/char_ext.rs deleted file mode 100644 index 74d816f..0000000 --- a/src/char_ext.rs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2012-2016 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. -// -// Original authors: alexchrichton - - -// UTF-8 ranges and tags for encoding characters -const TAG_CONT: u8 = 0b1000_0000; -const TAG_TWO_B: u8 = 0b1100_0000; -const TAG_THREE_B: u8 = 0b1110_0000; -const TAG_FOUR_B: u8 = 0b1111_0000; -const MAX_ONE_B: u32 = 0x80; -const MAX_TWO_B: u32 = 0x800; -const MAX_THREE_B: u32 = 0x10000; - -/// Placeholder -pub struct EncodeError; - -/// Encode a char into buf -#[inline] -pub fn encode_utf8(ch: char, buf: &mut [u8]) -> Result -{ - let code = ch as u32; - if code < MAX_ONE_B && buf.len() >= 1 { - buf[0] = code as u8; - return Ok(1); - } else if code < MAX_TWO_B && buf.len() >= 2 { - buf[0] = (code >> 6 & 0x1F) as u8 | TAG_TWO_B; - buf[1] = (code & 0x3F) as u8 | TAG_CONT; - return Ok(2); - } else if code < MAX_THREE_B && buf.len() >= 3 { - buf[0] = (code >> 12 & 0x0F) as u8 | TAG_THREE_B; - buf[1] = (code >> 6 & 0x3F) as u8 | TAG_CONT; - buf[2] = (code & 0x3F) as u8 | TAG_CONT; - return Ok(3); - } else if buf.len() >= 4 { - buf[0] = (code >> 18 & 0x07) as u8 | TAG_FOUR_B; - buf[1] = (code >> 12 & 0x3F) as u8 | TAG_CONT; - buf[2] = (code >> 6 & 0x3F) as u8 | TAG_CONT; - buf[3] = (code & 0x3F) as u8 | TAG_CONT; - return Ok(4); - }; - Err(EncodeError) -} - diff --git a/src/lib.rs b/src/lib.rs index 45c9b85..38cfa7b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -56,7 +56,6 @@ use nodrop::NoDrop; mod array; mod array_string; -mod char_ext; pub use array::Array; pub use odds::IndexRange as RangeArgument;