#utf-8 #unicode #character #no-alloc

no-std utf8-parser

A one-byte-at-a-time UTF-8 parser

2 releases

0.0.4 Dec 16, 2023
0.0.3 Dec 14, 2023

#108 in No standard library

Download history 1/week @ 2024-02-18 37/week @ 2024-02-25 3/week @ 2024-03-03 20/week @ 2024-03-10 20/week @ 2024-03-17 31/week @ 2024-03-31

72 downloads per month

MIT/Apache

20KB
350 lines

utf8-parser

A stateful one-byte-at-a-time UTF-8 parser. This is useful for things like building characters from bytes pulled from a UART.

Repository crates.io Documentation

Example

use utf8_parser::Utf8Parser;

let mut parser = Utf8Parser::new();
assert!(parser.push(0xf0).unwrap().is_none());
assert!(parser.push(0x9f).unwrap().is_none());
assert!(parser.push(0x8e).unwrap().is_none());
assert_eq!(parser.push(0x84).unwrap(), Some('🎄'));

Crate Features

  • std - Enables the std::error::Error implementation on Utf8ParserError
  • error_in_core - Same as std, but with core::error::Error. Currently requires Nightly and #![feature(error_in_core)]. Has no effect if the std feature is enabled.

Similar crates

License

Licensed under either of

at your option.

No runtime deps