Use encode_utf8 from crate odds

This commit is contained in:
bluss
2016-10-16 11:54:44 +02:00
parent d43c959fa8
commit 3d69403dee
4 changed files with 2 additions and 55 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ repository = "https://github.com/bluss/arrayvec"
keywords = ["stack", "vector", "array", "data-structure", "no_std"] keywords = ["stack", "vector", "array", "data-structure", "no_std"]
[dependencies.odds] [dependencies.odds]
version = "0.2.12" version = "0.2.23"
default-features = false default-features = false
[dependencies.nodrop] [dependencies.nodrop]
+1 -1
View File
@@ -10,7 +10,7 @@ use std::slice;
use array::Array; use array::Array;
use array::Index; use array::Index;
use CapacityError; use CapacityError;
use char_ext::encode_utf8; use odds::char::encode_utf8;
/// A string with a fixed capacity. /// A string with a fixed capacity.
/// ///
-52
View File
@@ -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 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, 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<usize, EncodeError>
{
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)
}
-1
View File
@@ -56,7 +56,6 @@ use nodrop::NoDrop;
mod array; mod array;
mod array_string; mod array_string;
mod char_ext;
pub use array::Array; pub use array::Array;
pub use odds::IndexRange as RangeArgument; pub use odds::IndexRange as RangeArgument;