Crate grapheme

Crate grapheme 

Source
Expand description

§grapheme

Crates.io Documentation

This crate offers types related to extended Unicode grapheme clusters, which are replacements for the standard types char and str.

§Features

  • Replacement for the standard library char and str types.
  • Optimized owning grapheme type.
  • Macros g! and gs!, used as literals to create crate types, performing all necessary checks at compile time.

§Usage

Add this to your Cargo.toml:

[dependencies]
grapheme = "1"

Then:

use grapheme::prelude::*;

let alpha = gs!("a 6 y̆ நி र्क");

let mut iter = alpha.iter().filter(|g| g.is_alphabetic());

assert_eq!(Some(g!("a")), iter.next());
assert_eq!(Some(g!("y̆")), iter.next());
assert_eq!(Some(g!("நி")), iter.next());
assert_eq!(Some(g!("र्क")), iter.next());

assert_eq!(None, iter.next());

Re-exports§

pub use grapheme::Grapheme;
pub use grapheme_owned::GraphemeOwned;
pub use grapheme_owned::MaybeGraphemeOwned;
pub use graphemes::Graphemes;

Modules§

grapheme
Utilities for the Grapheme type.
grapheme_owned
Utilities for the GraphemeOwned type.
graphemes
Utilities for the Graphemes type.
prelude
Commonly used functions, traits and types.

Macros§

g
Literal for Grapheme
gs
Literal for Graphemes