1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! ASCII base on RFC20.
//!
//! 基于 ASCII 规范文档 RFC20 编写的库
//!
//! This crate is very simple, just ord() and chr()
//!
//! 这个库非常简单易用,因为只有 ord() 和 chr() 这两个方法
//!
//!
//! **ord**
//!
//! Given a string representing one Unicode character, return an integer representing the Unicode code point of that character.
//!
//! For example, ord('a') returns the integer Some(97) and ord("s") returns Some(115).
//!
//! This is the inverse of chr().
//!
//!
//! **chr**
//!
//! Return the string representing a character whose Unicode code point is the integer i.
//!
//! For example, chr(97) returns the Some(), while chr(115) returns the String Some("s").
//!
//! This is the inverse of ord().
//!
//! # ord()
//! &str to Some(i32), "s" -> Some(115)
//!
//! Example:
//!
//!     use asciis::asc::Asciis;
//!     let asc = Asciis{};
//!     let r = asc.ord("s");
//!     assert_eq!(r, Some(115));
//!
//! # chr()
//! i32 to Some(String), 97 -> Some("a")
//!
//! Example:
//!
//!     use asciis::asc::Asciis;
//!     let asc = Asciis{};
//!     let v = asc.chr(97);
//!     assert_eq!(v, Some(String::from("a")));
//!
//! # FAQ
//! Q:Why the type of return value is Option, not i32 or String?
//!
//! 为什么返回值的类型是 Option ,而不是 i32 或者 String ?
//!
//! A: The ascii value range is [0~127], which can cause panic! if exceeded. So Option better than i32 or String.
//!
//! ASCII 码的范围是 [0~127],超出范围就会引发 panic!。所以 Option 比 i32 或者 String 更合适。
//!
//! Q: Rust std has AsciiExt,why write this crate?
//!
//! Rust 标准库 std 中已经有了 AsciiExt,为什么你还要写这个库?
//!
//! A: Python's simple style influenced me. ord() and chr() are very simple to use.
//!
//! Python 简约的风格影响着我,我觉得 ord() 和 chr() 这种方式更好用。
//!
//! Q: Where does the standard code come from?
//!
//! 这些标准代码从哪里来?
//!
//! A: From the RFC20 https://tools.ietf.org/html/rfc20#section-2
//!
//! 详见 RFC20 文档的第 2 部分介绍 https://tools.ietf.org/html/rfc20#section-2
//!
//! Q: How do I determine what value the ord () method should pass in?
//!
//! 我如何确定 ord() 方法应该传入什么值?
//!
//! A:See https://tools.ietf.org/html/rfc20#section-2
//!
//! 跟上面一样,详见 RFC20 文档的第 2 部分介绍,这是 ASCII 规范中约定的值
// --snip--

pub mod asc;