unic_ucd_category/lib.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
// Copyright 2017 The UNIC Project Developers.
//
// See the COPYRIGHT file at the top-level directory of this distribution.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![no_std]
#![warn(
bad_style,
missing_debug_implementations,
missing_docs,
unconditional_recursion
)]
#![forbid(unsafe_code)]
//! # UNIC — UCD — Category
//!
//! A component of [`unic`: Unicode and Internationalization Crates for Rust](/unic/).
//!
//! Unicode [`General_Category`](http://unicode.org/reports/tr44/#General_Category).
//!
//! > The `General_Category` property of a code point provides for the most general classification
//! of that code point. It is usually determined based on the primary characteristic of the assigned
//! character for that code point. For example, is the character a letter, a mark, a number,
//! punctuation, or a symbol, and if so, of what type? Other `General_Category` values define the
//! classification of code points which are not assigned to regular graphic characters, including
//! such statuses as private-use, control, surrogate code point, and reserved unassigned.
//! >
//! > Many characters have multiple uses, and not all such cases can be captured entirely by the
//! `General_Category` value. For example, the `General_Category` value of Latin, Greek, or Hebrew
//! letters does not attempt to cover (or preclude) the numerical use of such letters as Roman
//! numerals or in other numerary systems. Conversely, the `General_Category` of ASCII digits 0..9
//! as Nd (decimal digit) neither attempts to cover (or preclude) the occasional use of these digits
//! as letters in various orthographies. The `General_Category` is simply the first-order, most
//! usual categorization of a character.
//! >
//! > For more information about the `General_Category` property, see [Chapter 4, Character
//! Properties in the Unicode Standard](https://www.unicode.org/versions/Unicode10.0.0/ch04.pdf).
//!
//! -- [Unicode® Standard Annex #44 - Unicode Character Database](http://unicode.org/reports/tr44/)
#[macro_use]
extern crate matches;
#[macro_use]
extern crate unic_char_property;
#[macro_use]
extern crate unic_char_range;
mod pkg_info;
pub use crate::pkg_info::{PKG_DESCRIPTION, PKG_NAME, PKG_VERSION};
mod category;
pub use crate::category::GeneralCategory;
use unic_ucd_version::UnicodeVersion;
/// The [Unicode version](https://www.unicode.org/versions/) of data
pub const UNICODE_VERSION: UnicodeVersion = include!("../tables/unicode_version.rsv");