Skip to content

πŸ”­ Determine if a byte is a space in the POSIX locale

License

Notifications You must be signed in to change notification settings

artichoke/posix-space

Folders and files

NameName
Last commit message
Last commit date
Oct 6, 2022
Mar 1, 2025
Jun 2, 2023
Jun 5, 2024
Jun 5, 2024
Aug 13, 2022
Aug 13, 2022
Apr 27, 2023
Dec 24, 2024
Aug 13, 2022
Dec 24, 2024
Jun 2, 2023
Feb 1, 2025
Feb 1, 2025
Aug 13, 2022
Jun 2, 2023
Dec 24, 2024
Sep 8, 2024
Mar 1, 2025
Mar 1, 2025

Repository files navigation

posix-space

GitHub Actions Code Coverage Discord Twitter
Crate API API trunk

A small crate which determines if a byte is classified as a space in the POSIX locale per POSIX.1-2017, chapter 7, Locale.

space

Define characters to be classified as white-space characters.

In the POSIX locale, exactly <space>, <form-feed>, <newline>, <carriage-return>, <tab>, and <vertical-tab> shall be included.

The function defined in this crate should have equivalent behavior to the C function isspace as defined in ctype.h.

Usage

Add this to your Cargo.toml:

[dependencies]
posix-space = "1.0.4"

Then classify bytes like:

assert!(posix_space::is_space(b' '));
assert!(posix_space::is_space(b'\t'));
assert!(posix_space::is_space(b'\r'));

assert!(!posix_space::is_space(b'\0'));
assert!(!posix_space::is_space(b'C'));
assert!(!posix_space::is_space(b'&'));

This crate's behavior differs from u8::is_ascii_whitespace in the Rust standard library in that <vertical-tab>, \x0B, is considered a space.

assert!(posix_space::is_space(b'\x0B'));

Crate features

posix-space is no_std with no dependencies outside of Rust core.

Minimum Supported Rust Version

This crate requires at least Rust 1.31.0. This version can be bumped in minor releases.

License

posix-space is licensed under the MIT License (c) Ryan Lopopolo.