aboutsummaryrefslogtreecommitdiff
path: root/unicode-width/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'unicode-width/README.md')
-rw-r--r--unicode-width/README.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/unicode-width/README.md b/unicode-width/README.md
new file mode 100644
index 0000000..595e163
--- /dev/null
+++ b/unicode-width/README.md
@@ -0,0 +1,58 @@
+# unicode-width
+
+Determine displayed width of `char` and `str` types according to
+[Unicode Standard Annex #11][UAX11] rules.
+
+[UAX11]: http://www.unicode.org/reports/tr11/
+
+[![Build Status](https://travis-ci.org/unicode-rs/unicode-width.svg)](https://travis-ci.org/unicode-rs/unicode-width)
+
+[Documentation](https://unicode-rs.github.io/unicode-width/unicode_width/index.html)
+
+```rust
+extern crate unicode_width;
+
+use unicode_width::UnicodeWidthStr;
+
+fn main() {
+ let teststr = "Hello, world!";
+ let width = UnicodeWidthStr::width(teststr);
+ println!("{}", teststr);
+ println!("The above string is {} columns wide.", width);
+ let width = teststr.width_cjk();
+ println!("The above string is {} columns wide (CJK).", width);
+}
+```
+
+**NOTE:** The computed width values may not match the actual rendered column
+width. For example, the woman scientist emoji comprises of a woman emoji, a
+zero-width joiner and a microscope emoji.
+
+```rust
+extern crate unicode_width;
+use unicode_width::UnicodeWidthStr;
+
+fn main() {
+ assert_eq!(UnicodeWidthStr::width("👩"), 2); // Woman
+ assert_eq!(UnicodeWidthStr::width("🔬"), 2); // Microscope
+ assert_eq!(UnicodeWidthStr::width("👩‍🔬"), 4); // Woman scientist
+}
+```
+
+See [Unicode Standard Annex #11][UAX11] for precise details on what is and isn't
+covered by this crate.
+
+## features
+
+unicode-width does not depend on libstd, so it can be used in crates
+with the `#![no_std]` attribute.
+
+## crates.io
+
+You can use this package in your project by adding the following
+to your `Cargo.toml`:
+
+```toml
+[dependencies]
+unicode-width = "0.1.7"
+```