unicode-width-utils
A thin-wrapper for the unicode-width crate with additional functionalities,
such as dynamic configuration for CJK (East Asian Ambiguous) widths and
safe string truncation.
Features
- Configuration Object: Provides the configuration object for
various different needs.
- The tab size and whether to expand them to spaces or not.
- The size of control characters.
- Whether to use alternate width calculation more suited for CJK contexts or not. It controls East Asian Ambiguous characters (such as Greek, Cyrillic, and some symbol characters) to be 1 or 2 columns wide.
- Environment Variable Support: Initialize the default CJK mode
using the
UNICODE_WIDTH=cjkenvironment variable, so that end users can change it to match their environment for when applications don't explicitly specify it. - Safe Truncation: Truncate strings to a specific column width without breaking UTF-8 characters, including optional tab support.
Installation
Usage
Basic Example
use UnicodeWidth;
CJK Ambiguous Widths
You can explicitly configure whether East Asian Ambiguous characters are treated as 1 or 2 columns wide:
use UnicodeWidth;
Global Default Configuration
You can change the default configuration
for future instances created via UnicodeWidth::new():
use UnicodeWidth;
Alternatively, you can initialize the default CJK mode via the environment variable:
UNICODE_WIDTH=cjk
String Truncation
Truncate a string slice so that its total display width does not exceed a maximum limit:
use UnicodeWidth;
Please see the documentation for more details.
License
Licensed under the Apache License, Version 2.0.