unic-emoji-char-0.9.0/Cargo.toml.orig010064400007650000024000000020341343665764000156150ustar0000000000000000[package] name = "unic-emoji-char" version = "0.9.0" edition = "2018" authors = ["The UNIC Project Developers"] repository = "https://github.com/open-i18n/rust-unic/" license = "MIT/Apache-2.0" description = "UNIC — Unicode Emoji — Emoji Character Properties" keywords = ["text", "unicode", "character-property", "emoji"] categories = ["internationalization", "text-processing", "parsing", "rendering"] # No tests/benches that depends on /data/ exclude = [] [dependencies] unic-char-property = { path = "../../char/property/", version = "0.9.0" } unic-char-range = { path = "../../char/range", version = "0.9.0" } unic-ucd-version = { path = "../../ucd/version/", version = "0.9.0" } [badges] maintenance = { status = "actively-developed" } is-it-maintained-issue-resolution = { repository = "open-i18n/rust-unic" } is-it-maintained-open-issues = { repository = "open-i18n/rust-unic" } appveyor = { repository = "open-i18n/rust-unic", branch = "master", service = "github" } travis-ci = { repository = "open-i18n/rust-unic", branch = "master" } unic-emoji-char-0.9.0/Cargo.toml0000644000000026710000000000000120570ustar00# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g. crates.io) dependencies # # If you believe there's an error in this file please file an # issue against the rust-lang/cargo repository. If you're # editing this file be aware that the upstream Cargo.toml # will likely look very different (and much more reasonable) [package] edition = "2018" name = "unic-emoji-char" version = "0.9.0" authors = ["The UNIC Project Developers"] exclude = [] description = "UNIC — Unicode Emoji — Emoji Character Properties" keywords = ["text", "unicode", "character-property", "emoji"] categories = ["internationalization", "text-processing", "parsing", "rendering"] license = "MIT/Apache-2.0" repository = "https://github.com/open-i18n/rust-unic/" [dependencies.unic-char-property] version = "0.9.0" [dependencies.unic-char-range] version = "0.9.0" [dependencies.unic-ucd-version] version = "0.9.0" [badges.appveyor] branch = "master" repository = "open-i18n/rust-unic" service = "github" [badges.is-it-maintained-issue-resolution] repository = "open-i18n/rust-unic" [badges.is-it-maintained-open-issues] repository = "open-i18n/rust-unic" [badges.maintenance] status = "actively-developed" [badges.travis-ci] branch = "master" repository = "open-i18n/rust-unic" unic-emoji-char-0.9.0/src/emoji.rs010064400007650000024000000073601343520353600151630ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Unicode `Emoji` Character Property. char_property! { /// Represents values of the Unicode character property /// [`Emoji`](https://www.unicode.org/reports/tr51/#Emoji_Properties). /// /// The value is `true` for characters that are emoji. pub struct Emoji(bool) { abbr => "Emoji"; long => "Emoji"; human => "Emoji"; data_table_path => "../tables/emoji.rsv"; } /// The value is `true` for characters that are emoji. pub fn is_emoji(char) -> bool; } #[cfg(test)] mod tests { #[test] fn test_values() { use super::is_emoji; // ASCII assert_eq!(is_emoji('\u{0000}'), false); assert_eq!(is_emoji('\u{0021}'), false); assert_eq!(is_emoji('\u{0027}'), false); assert_eq!(is_emoji('\u{0028}'), false); assert_eq!(is_emoji('\u{0029}'), false); assert_eq!(is_emoji('\u{002a}'), true); assert_eq!(is_emoji('\u{003b}'), false); assert_eq!(is_emoji('\u{003c}'), false); assert_eq!(is_emoji('\u{003d}'), false); assert_eq!(is_emoji('\u{007a}'), false); assert_eq!(is_emoji('\u{007b}'), false); assert_eq!(is_emoji('\u{007c}'), false); assert_eq!(is_emoji('\u{007d}'), false); assert_eq!(is_emoji('\u{007e}'), false); // Other BMP assert_eq!(is_emoji('\u{061b}'), false); assert_eq!(is_emoji('\u{061c}'), false); assert_eq!(is_emoji('\u{061d}'), false); assert_eq!(is_emoji('\u{200d}'), false); assert_eq!(is_emoji('\u{200e}'), false); assert_eq!(is_emoji('\u{200f}'), false); assert_eq!(is_emoji('\u{2010}'), false); assert_eq!(is_emoji('\u{2029}'), false); assert_eq!(is_emoji('\u{202a}'), false); assert_eq!(is_emoji('\u{202e}'), false); assert_eq!(is_emoji('\u{202f}'), false); // Other Planes assert_eq!(is_emoji('\u{10000}'), false); assert_eq!(is_emoji('\u{10001}'), false); assert_eq!(is_emoji('\u{1f1e5}'), false); assert_eq!(is_emoji('\u{1f1e6}'), true); assert_eq!(is_emoji('\u{1f1ff}'), true); assert_eq!(is_emoji('\u{1f200}'), false); assert_eq!(is_emoji('\u{20000}'), false); assert_eq!(is_emoji('\u{30000}'), false); assert_eq!(is_emoji('\u{40000}'), false); assert_eq!(is_emoji('\u{50000}'), false); assert_eq!(is_emoji('\u{60000}'), false); assert_eq!(is_emoji('\u{70000}'), false); assert_eq!(is_emoji('\u{80000}'), false); assert_eq!(is_emoji('\u{90000}'), false); assert_eq!(is_emoji('\u{a0000}'), false); assert_eq!(is_emoji('\u{b0000}'), false); assert_eq!(is_emoji('\u{c0000}'), false); assert_eq!(is_emoji('\u{d0000}'), false); assert_eq!(is_emoji('\u{e0000}'), false); assert_eq!(is_emoji('\u{efffe}'), false); assert_eq!(is_emoji('\u{effff}'), false); // Priavte-Use Area assert_eq!(is_emoji('\u{f0000}'), false); assert_eq!(is_emoji('\u{f0001}'), false); assert_eq!(is_emoji('\u{ffffe}'), false); assert_eq!(is_emoji('\u{fffff}'), false); assert_eq!(is_emoji('\u{100000}'), false); assert_eq!(is_emoji('\u{100001}'), false); assert_eq!(is_emoji('\u{10fffe}'), false); assert_eq!(is_emoji('\u{10ffff}'), false); } } unic-emoji-char-0.9.0/src/emoji_component.rs010064400007650000024000000111671343520353600172450ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Unicode `Emoji_Component` Character Property. char_property! { /// Represents values of the Unicode character property /// [`Emoji_Component`](https://www.unicode.org/reports/tr51/#Emoji_Properties). /// /// The value is `true` for characters that normally do not appear on emoji keyboards as /// separate choices, such as Keycap base characters, Regional_Indicators, …, `false` otherwise. pub struct EmojiComponent(bool) { abbr => "Emoji_Component"; long => "Emoji_Component"; human => "Emoji Component"; data_table_path => "../tables/emoji_component.rsv"; } /// The value is `true` for characters that normally do not appear on emoji keyboards as /// separate choices, such as Keycap base characters, Regional_Indicators, …, `false` otherwise. pub fn is_emoji_component(char) -> bool; } #[cfg(test)] mod tests { #[test] fn test_values() { use super::is_emoji_component; // ASCII assert_eq!(is_emoji_component('\u{0000}'), false); assert_eq!(is_emoji_component('\u{0021}'), false); assert_eq!(is_emoji_component('\u{0027}'), false); assert_eq!(is_emoji_component('\u{0028}'), false); assert_eq!(is_emoji_component('\u{0029}'), false); assert_eq!(is_emoji_component('\u{002a}'), true); assert_eq!(is_emoji_component('\u{003b}'), false); assert_eq!(is_emoji_component('\u{003c}'), false); assert_eq!(is_emoji_component('\u{003d}'), false); assert_eq!(is_emoji_component('\u{007a}'), false); assert_eq!(is_emoji_component('\u{007b}'), false); assert_eq!(is_emoji_component('\u{007c}'), false); assert_eq!(is_emoji_component('\u{007d}'), false); assert_eq!(is_emoji_component('\u{007e}'), false); // Other BMP assert_eq!(is_emoji_component('\u{061b}'), false); assert_eq!(is_emoji_component('\u{061c}'), false); assert_eq!(is_emoji_component('\u{061d}'), false); assert_eq!(is_emoji_component('\u{200d}'), false); assert_eq!(is_emoji_component('\u{200e}'), false); assert_eq!(is_emoji_component('\u{200f}'), false); assert_eq!(is_emoji_component('\u{2010}'), false); assert_eq!(is_emoji_component('\u{2029}'), false); assert_eq!(is_emoji_component('\u{202a}'), false); assert_eq!(is_emoji_component('\u{202e}'), false); assert_eq!(is_emoji_component('\u{202f}'), false); // Other Planes assert_eq!(is_emoji_component('\u{10000}'), false); assert_eq!(is_emoji_component('\u{10001}'), false); assert_eq!(is_emoji_component('\u{1f1e5}'), false); assert_eq!(is_emoji_component('\u{1f1e6}'), true); assert_eq!(is_emoji_component('\u{1f1ff}'), true); assert_eq!(is_emoji_component('\u{1f200}'), false); assert_eq!(is_emoji_component('\u{20000}'), false); assert_eq!(is_emoji_component('\u{30000}'), false); assert_eq!(is_emoji_component('\u{40000}'), false); assert_eq!(is_emoji_component('\u{50000}'), false); assert_eq!(is_emoji_component('\u{60000}'), false); assert_eq!(is_emoji_component('\u{70000}'), false); assert_eq!(is_emoji_component('\u{80000}'), false); assert_eq!(is_emoji_component('\u{90000}'), false); assert_eq!(is_emoji_component('\u{a0000}'), false); assert_eq!(is_emoji_component('\u{b0000}'), false); assert_eq!(is_emoji_component('\u{c0000}'), false); assert_eq!(is_emoji_component('\u{d0000}'), false); assert_eq!(is_emoji_component('\u{e0000}'), false); assert_eq!(is_emoji_component('\u{efffe}'), false); assert_eq!(is_emoji_component('\u{effff}'), false); // Priavte-Use Area assert_eq!(is_emoji_component('\u{f0000}'), false); assert_eq!(is_emoji_component('\u{f0001}'), false); assert_eq!(is_emoji_component('\u{ffffe}'), false); assert_eq!(is_emoji_component('\u{fffff}'), false); assert_eq!(is_emoji_component('\u{100000}'), false); assert_eq!(is_emoji_component('\u{100001}'), false); assert_eq!(is_emoji_component('\u{10fffe}'), false); assert_eq!(is_emoji_component('\u{10ffff}'), false); } } unic-emoji-char-0.9.0/src/emoji_modifier.rs010064400007650000024000000105331343520353600170350ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Unicode `Emoji_Modifier` Character Property. char_property! { /// Represents values of the Unicode character property /// [`Emoji_Modifier`](https://www.unicode.org/reports/tr51/#Emoji_Properties). /// /// The value is `true` for characters that have emoji presentation by default. pub struct EmojiModifier(bool) { abbr => "Emoji_Modifier"; long => "Emoji_Modifier"; human => "Emoji Modifier"; data_table_path => "../tables/emoji_modifier.rsv"; } /// The value is `true` for characters that have emoji presentation by default. pub fn is_emoji_modifier(char) -> bool; } #[cfg(test)] mod tests { #[test] fn test_values() { use super::is_emoji_modifier; // ASCII assert_eq!(is_emoji_modifier('\u{0000}'), false); assert_eq!(is_emoji_modifier('\u{0021}'), false); assert_eq!(is_emoji_modifier('\u{0027}'), false); assert_eq!(is_emoji_modifier('\u{0028}'), false); assert_eq!(is_emoji_modifier('\u{0029}'), false); assert_eq!(is_emoji_modifier('\u{002a}'), false); assert_eq!(is_emoji_modifier('\u{003b}'), false); assert_eq!(is_emoji_modifier('\u{003c}'), false); assert_eq!(is_emoji_modifier('\u{003d}'), false); assert_eq!(is_emoji_modifier('\u{007a}'), false); assert_eq!(is_emoji_modifier('\u{007b}'), false); assert_eq!(is_emoji_modifier('\u{007c}'), false); assert_eq!(is_emoji_modifier('\u{007d}'), false); assert_eq!(is_emoji_modifier('\u{007e}'), false); // Other BMP assert_eq!(is_emoji_modifier('\u{061b}'), false); assert_eq!(is_emoji_modifier('\u{061c}'), false); assert_eq!(is_emoji_modifier('\u{061d}'), false); assert_eq!(is_emoji_modifier('\u{200d}'), false); assert_eq!(is_emoji_modifier('\u{200e}'), false); assert_eq!(is_emoji_modifier('\u{200f}'), false); assert_eq!(is_emoji_modifier('\u{2010}'), false); assert_eq!(is_emoji_modifier('\u{2029}'), false); assert_eq!(is_emoji_modifier('\u{202a}'), false); assert_eq!(is_emoji_modifier('\u{202e}'), false); assert_eq!(is_emoji_modifier('\u{202f}'), false); // Other Planes assert_eq!(is_emoji_modifier('\u{10000}'), false); assert_eq!(is_emoji_modifier('\u{10001}'), false); assert_eq!(is_emoji_modifier('\u{1f1e5}'), false); assert_eq!(is_emoji_modifier('\u{1f1e6}'), false); assert_eq!(is_emoji_modifier('\u{1f1ff}'), false); assert_eq!(is_emoji_modifier('\u{1f200}'), false); assert_eq!(is_emoji_modifier('\u{20000}'), false); assert_eq!(is_emoji_modifier('\u{30000}'), false); assert_eq!(is_emoji_modifier('\u{40000}'), false); assert_eq!(is_emoji_modifier('\u{50000}'), false); assert_eq!(is_emoji_modifier('\u{60000}'), false); assert_eq!(is_emoji_modifier('\u{70000}'), false); assert_eq!(is_emoji_modifier('\u{80000}'), false); assert_eq!(is_emoji_modifier('\u{90000}'), false); assert_eq!(is_emoji_modifier('\u{a0000}'), false); assert_eq!(is_emoji_modifier('\u{b0000}'), false); assert_eq!(is_emoji_modifier('\u{c0000}'), false); assert_eq!(is_emoji_modifier('\u{d0000}'), false); assert_eq!(is_emoji_modifier('\u{e0000}'), false); assert_eq!(is_emoji_modifier('\u{efffe}'), false); assert_eq!(is_emoji_modifier('\u{effff}'), false); // Priavte-Use Area assert_eq!(is_emoji_modifier('\u{f0000}'), false); assert_eq!(is_emoji_modifier('\u{f0001}'), false); assert_eq!(is_emoji_modifier('\u{ffffe}'), false); assert_eq!(is_emoji_modifier('\u{fffff}'), false); assert_eq!(is_emoji_modifier('\u{100000}'), false); assert_eq!(is_emoji_modifier('\u{100001}'), false); assert_eq!(is_emoji_modifier('\u{10fffe}'), false); assert_eq!(is_emoji_modifier('\u{10ffff}'), false); } } unic-emoji-char-0.9.0/src/emoji_modifier_base.rs010064400007650000024000000111671343520353600200330ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Unicode `Emoji_Modifier_Base` Character Property. char_property! { /// Represents values of the Unicode character property /// [`Emoji_Modifier_Base`](https://www.unicode.org/reports/tr51/#Emoji_Properties). /// /// The value is `true` for characters that are emoji modifiers. pub struct EmojiModifierBase(bool) { abbr => "Emoji_Modifier_Base"; long => "Emoji_Modifier_Base"; human => "Emoji Modifier Base"; data_table_path => "../tables/emoji_modifier_base.rsv"; } /// The value is `true` for characters that are emoji modifiers. pub fn is_emoji_modifier_base(char) -> bool; } #[cfg(test)] mod tests { #[test] fn test_values() { use super::is_emoji_modifier_base; // ASCII assert_eq!(is_emoji_modifier_base('\u{0000}'), false); assert_eq!(is_emoji_modifier_base('\u{0021}'), false); assert_eq!(is_emoji_modifier_base('\u{0027}'), false); assert_eq!(is_emoji_modifier_base('\u{0028}'), false); assert_eq!(is_emoji_modifier_base('\u{0029}'), false); assert_eq!(is_emoji_modifier_base('\u{002a}'), false); assert_eq!(is_emoji_modifier_base('\u{003b}'), false); assert_eq!(is_emoji_modifier_base('\u{003c}'), false); assert_eq!(is_emoji_modifier_base('\u{003d}'), false); assert_eq!(is_emoji_modifier_base('\u{007a}'), false); assert_eq!(is_emoji_modifier_base('\u{007b}'), false); assert_eq!(is_emoji_modifier_base('\u{007c}'), false); assert_eq!(is_emoji_modifier_base('\u{007d}'), false); assert_eq!(is_emoji_modifier_base('\u{007e}'), false); // Other BMP assert_eq!(is_emoji_modifier_base('\u{061b}'), false); assert_eq!(is_emoji_modifier_base('\u{061c}'), false); assert_eq!(is_emoji_modifier_base('\u{061d}'), false); assert_eq!(is_emoji_modifier_base('\u{200d}'), false); assert_eq!(is_emoji_modifier_base('\u{200e}'), false); assert_eq!(is_emoji_modifier_base('\u{200f}'), false); assert_eq!(is_emoji_modifier_base('\u{2010}'), false); assert_eq!(is_emoji_modifier_base('\u{2029}'), false); assert_eq!(is_emoji_modifier_base('\u{202a}'), false); assert_eq!(is_emoji_modifier_base('\u{202e}'), false); assert_eq!(is_emoji_modifier_base('\u{202f}'), false); // Other Planes assert_eq!(is_emoji_modifier_base('\u{10000}'), false); assert_eq!(is_emoji_modifier_base('\u{10001}'), false); assert_eq!(is_emoji_modifier_base('\u{1f1e5}'), false); assert_eq!(is_emoji_modifier_base('\u{1f1e6}'), false); assert_eq!(is_emoji_modifier_base('\u{1f1ff}'), false); assert_eq!(is_emoji_modifier_base('\u{1f200}'), false); assert_eq!(is_emoji_modifier_base('\u{20000}'), false); assert_eq!(is_emoji_modifier_base('\u{30000}'), false); assert_eq!(is_emoji_modifier_base('\u{40000}'), false); assert_eq!(is_emoji_modifier_base('\u{50000}'), false); assert_eq!(is_emoji_modifier_base('\u{60000}'), false); assert_eq!(is_emoji_modifier_base('\u{70000}'), false); assert_eq!(is_emoji_modifier_base('\u{80000}'), false); assert_eq!(is_emoji_modifier_base('\u{90000}'), false); assert_eq!(is_emoji_modifier_base('\u{a0000}'), false); assert_eq!(is_emoji_modifier_base('\u{b0000}'), false); assert_eq!(is_emoji_modifier_base('\u{c0000}'), false); assert_eq!(is_emoji_modifier_base('\u{d0000}'), false); assert_eq!(is_emoji_modifier_base('\u{e0000}'), false); assert_eq!(is_emoji_modifier_base('\u{efffe}'), false); assert_eq!(is_emoji_modifier_base('\u{effff}'), false); // Priavte-Use Area assert_eq!(is_emoji_modifier_base('\u{f0000}'), false); assert_eq!(is_emoji_modifier_base('\u{f0001}'), false); assert_eq!(is_emoji_modifier_base('\u{ffffe}'), false); assert_eq!(is_emoji_modifier_base('\u{fffff}'), false); assert_eq!(is_emoji_modifier_base('\u{100000}'), false); assert_eq!(is_emoji_modifier_base('\u{100001}'), false); assert_eq!(is_emoji_modifier_base('\u{10fffe}'), false); assert_eq!(is_emoji_modifier_base('\u{10ffff}'), false); } } unic-emoji-char-0.9.0/src/emoji_presentation.rs010064400007650000024000000111251343520353600177500ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Unicode `Emoji_Presentation` Character Property. char_property! { /// Represents values of the Unicode character property /// [`Emoji_Presentation`](https://www.unicode.org/reports/tr51/#Emoji_Properties). /// /// The value is `true` for characters that have emoji presentation by default. pub struct EmojiPresentation(bool) { abbr => "Emoji_Presentation"; long => "Emoji_Presentation"; human => "Emoji Presentation"; data_table_path => "../tables/emoji_presentation.rsv"; } /// The value is `true` for characters that have emoji presentation by default. pub fn is_emoji_presentation(char) -> bool; } #[cfg(test)] mod tests { #[test] fn test_values() { use super::is_emoji_presentation; // ASCII assert_eq!(is_emoji_presentation('\u{0000}'), false); assert_eq!(is_emoji_presentation('\u{0021}'), false); assert_eq!(is_emoji_presentation('\u{0027}'), false); assert_eq!(is_emoji_presentation('\u{0028}'), false); assert_eq!(is_emoji_presentation('\u{0029}'), false); assert_eq!(is_emoji_presentation('\u{002a}'), false); assert_eq!(is_emoji_presentation('\u{003b}'), false); assert_eq!(is_emoji_presentation('\u{003c}'), false); assert_eq!(is_emoji_presentation('\u{003d}'), false); assert_eq!(is_emoji_presentation('\u{007a}'), false); assert_eq!(is_emoji_presentation('\u{007b}'), false); assert_eq!(is_emoji_presentation('\u{007c}'), false); assert_eq!(is_emoji_presentation('\u{007d}'), false); assert_eq!(is_emoji_presentation('\u{007e}'), false); // Other BMP assert_eq!(is_emoji_presentation('\u{061b}'), false); assert_eq!(is_emoji_presentation('\u{061c}'), false); assert_eq!(is_emoji_presentation('\u{061d}'), false); assert_eq!(is_emoji_presentation('\u{200d}'), false); assert_eq!(is_emoji_presentation('\u{200e}'), false); assert_eq!(is_emoji_presentation('\u{200f}'), false); assert_eq!(is_emoji_presentation('\u{2010}'), false); assert_eq!(is_emoji_presentation('\u{2029}'), false); assert_eq!(is_emoji_presentation('\u{202a}'), false); assert_eq!(is_emoji_presentation('\u{202e}'), false); assert_eq!(is_emoji_presentation('\u{202f}'), false); // Other Planes assert_eq!(is_emoji_presentation('\u{10000}'), false); assert_eq!(is_emoji_presentation('\u{10001}'), false); assert_eq!(is_emoji_presentation('\u{1f1e5}'), false); assert_eq!(is_emoji_presentation('\u{1f1e6}'), true); assert_eq!(is_emoji_presentation('\u{1f1ff}'), true); assert_eq!(is_emoji_presentation('\u{1f200}'), false); assert_eq!(is_emoji_presentation('\u{20000}'), false); assert_eq!(is_emoji_presentation('\u{30000}'), false); assert_eq!(is_emoji_presentation('\u{40000}'), false); assert_eq!(is_emoji_presentation('\u{50000}'), false); assert_eq!(is_emoji_presentation('\u{60000}'), false); assert_eq!(is_emoji_presentation('\u{70000}'), false); assert_eq!(is_emoji_presentation('\u{80000}'), false); assert_eq!(is_emoji_presentation('\u{90000}'), false); assert_eq!(is_emoji_presentation('\u{a0000}'), false); assert_eq!(is_emoji_presentation('\u{b0000}'), false); assert_eq!(is_emoji_presentation('\u{c0000}'), false); assert_eq!(is_emoji_presentation('\u{d0000}'), false); assert_eq!(is_emoji_presentation('\u{e0000}'), false); assert_eq!(is_emoji_presentation('\u{efffe}'), false); assert_eq!(is_emoji_presentation('\u{effff}'), false); // Priavte-Use Area assert_eq!(is_emoji_presentation('\u{f0000}'), false); assert_eq!(is_emoji_presentation('\u{f0001}'), false); assert_eq!(is_emoji_presentation('\u{ffffe}'), false); assert_eq!(is_emoji_presentation('\u{fffff}'), false); assert_eq!(is_emoji_presentation('\u{100000}'), false); assert_eq!(is_emoji_presentation('\u{100001}'), false); assert_eq!(is_emoji_presentation('\u{10fffe}'), false); assert_eq!(is_emoji_presentation('\u{10ffff}'), false); } } unic-emoji-char-0.9.0/src/emoji_version.rs010064400007650000024000000012271343520353600167240ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. pub use unic_ucd_version::UnicodeVersion; /// The [Emoji Version] of character property data. /// /// Refs: /// - pub const EMOJI_VERSION: UnicodeVersion = include!("../tables/emoji_version.rsv"); unic-emoji-char-0.9.0/src/lib.rs010064400007650000024000000026041343520353600146220ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. #![warn( bad_style, missing_debug_implementations, missing_docs, unconditional_recursion )] #![forbid(unsafe_code)] //! # UNIC — Unicode Emoji — Emoji Character Properties //! //! A component of [`unic`: Unicode and Internationalization Crates for Rust](/unic/). #[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 emoji_version; pub use crate::emoji_version::{UnicodeVersion, EMOJI_VERSION}; mod emoji; pub use crate::emoji::{is_emoji, Emoji}; mod emoji_component; pub use crate::emoji_component::{is_emoji_component, EmojiComponent}; mod emoji_modifier; pub use crate::emoji_modifier::{is_emoji_modifier, EmojiModifier}; mod emoji_modifier_base; pub use crate::emoji_modifier_base::{is_emoji_modifier_base, EmojiModifierBase}; mod emoji_presentation; pub use crate::emoji_presentation::{is_emoji_presentation, EmojiPresentation}; unic-emoji-char-0.9.0/src/pkg_info.rs010064400007650000024000000013121343520353600156430ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Package information /// UNIC component version. pub const PKG_VERSION: &str = env!("CARGO_PKG_VERSION"); /// UNIC component name. pub const PKG_NAME: &str = env!("CARGO_PKG_NAME"); /// UNIC component description. pub const PKG_DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION"); unic-emoji-char-0.9.0/tables/emoji.rsv010064400007650000024000000144501343520353600160320ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! CharDataTable::Range(&[ (chars!('\u{23}'..='\u{23}'), ()), (chars!('\u{2a}'..='\u{2a}'), ()), (chars!('\u{30}'..='\u{39}'), ()), (chars!('\u{a9}'..='\u{a9}'), ()), (chars!('\u{ae}'..='\u{ae}'), ()), (chars!('\u{203c}'..='\u{203c}'), ()), (chars!('\u{2049}'..='\u{2049}'), ()), (chars!('\u{2122}'..='\u{2122}'), ()), (chars!('\u{2139}'..='\u{2139}'), ()), (chars!('\u{2194}'..='\u{2199}'), ()), (chars!('\u{21a9}'..='\u{21aa}'), ()), (chars!('\u{231a}'..='\u{231b}'), ()), (chars!('\u{2328}'..='\u{2328}'), ()), (chars!('\u{23cf}'..='\u{23cf}'), ()), (chars!('\u{23e9}'..='\u{23f3}'), ()), (chars!('\u{23f8}'..='\u{23fa}'), ()), (chars!('\u{24c2}'..='\u{24c2}'), ()), (chars!('\u{25aa}'..='\u{25ab}'), ()), (chars!('\u{25b6}'..='\u{25b6}'), ()), (chars!('\u{25c0}'..='\u{25c0}'), ()), (chars!('\u{25fb}'..='\u{25fe}'), ()), (chars!('\u{2600}'..='\u{2604}'), ()), (chars!('\u{260e}'..='\u{260e}'), ()), (chars!('\u{2611}'..='\u{2611}'), ()), (chars!('\u{2614}'..='\u{2615}'), ()), (chars!('\u{2618}'..='\u{2618}'), ()), (chars!('\u{261d}'..='\u{261d}'), ()), (chars!('\u{2620}'..='\u{2620}'), ()), (chars!('\u{2622}'..='\u{2623}'), ()), (chars!('\u{2626}'..='\u{2626}'), ()), (chars!('\u{262a}'..='\u{262a}'), ()), (chars!('\u{262e}'..='\u{262f}'), ()), (chars!('\u{2638}'..='\u{263a}'), ()), (chars!('\u{2640}'..='\u{2640}'), ()), (chars!('\u{2642}'..='\u{2642}'), ()), (chars!('\u{2648}'..='\u{2653}'), ()), (chars!('\u{2660}'..='\u{2660}'), ()), (chars!('\u{2663}'..='\u{2663}'), ()), (chars!('\u{2665}'..='\u{2666}'), ()), (chars!('\u{2668}'..='\u{2668}'), ()), (chars!('\u{267b}'..='\u{267b}'), ()), (chars!('\u{267f}'..='\u{267f}'), ()), (chars!('\u{2692}'..='\u{2697}'), ()), (chars!('\u{2699}'..='\u{2699}'), ()), (chars!('\u{269b}'..='\u{269c}'), ()), (chars!('\u{26a0}'..='\u{26a1}'), ()), (chars!('\u{26aa}'..='\u{26ab}'), ()), (chars!('\u{26b0}'..='\u{26b1}'), ()), (chars!('\u{26bd}'..='\u{26be}'), ()), (chars!('\u{26c4}'..='\u{26c5}'), ()), (chars!('\u{26c8}'..='\u{26c8}'), ()), (chars!('\u{26ce}'..='\u{26cf}'), ()), (chars!('\u{26d1}'..='\u{26d1}'), ()), (chars!('\u{26d3}'..='\u{26d4}'), ()), (chars!('\u{26e9}'..='\u{26ea}'), ()), (chars!('\u{26f0}'..='\u{26f5}'), ()), (chars!('\u{26f7}'..='\u{26fa}'), ()), (chars!('\u{26fd}'..='\u{26fd}'), ()), (chars!('\u{2702}'..='\u{2702}'), ()), (chars!('\u{2705}'..='\u{2705}'), ()), (chars!('\u{2708}'..='\u{270d}'), ()), (chars!('\u{270f}'..='\u{270f}'), ()), (chars!('\u{2712}'..='\u{2712}'), ()), (chars!('\u{2714}'..='\u{2714}'), ()), (chars!('\u{2716}'..='\u{2716}'), ()), (chars!('\u{271d}'..='\u{271d}'), ()), (chars!('\u{2721}'..='\u{2721}'), ()), (chars!('\u{2728}'..='\u{2728}'), ()), (chars!('\u{2733}'..='\u{2734}'), ()), (chars!('\u{2744}'..='\u{2744}'), ()), (chars!('\u{2747}'..='\u{2747}'), ()), (chars!('\u{274c}'..='\u{274c}'), ()), (chars!('\u{274e}'..='\u{274e}'), ()), (chars!('\u{2753}'..='\u{2755}'), ()), (chars!('\u{2757}'..='\u{2757}'), ()), (chars!('\u{2763}'..='\u{2764}'), ()), (chars!('\u{2795}'..='\u{2797}'), ()), (chars!('\u{27a1}'..='\u{27a1}'), ()), (chars!('\u{27b0}'..='\u{27b0}'), ()), (chars!('\u{27bf}'..='\u{27bf}'), ()), (chars!('\u{2934}'..='\u{2935}'), ()), (chars!('\u{2b05}'..='\u{2b07}'), ()), (chars!('\u{2b1b}'..='\u{2b1c}'), ()), (chars!('\u{2b50}'..='\u{2b50}'), ()), (chars!('\u{2b55}'..='\u{2b55}'), ()), (chars!('\u{3030}'..='\u{3030}'), ()), (chars!('\u{303d}'..='\u{303d}'), ()), (chars!('\u{3297}'..='\u{3297}'), ()), (chars!('\u{3299}'..='\u{3299}'), ()), (chars!('\u{1f004}'..='\u{1f004}'), ()), (chars!('\u{1f0cf}'..='\u{1f0cf}'), ()), (chars!('\u{1f170}'..='\u{1f171}'), ()), (chars!('\u{1f17e}'..='\u{1f17f}'), ()), (chars!('\u{1f18e}'..='\u{1f18e}'), ()), (chars!('\u{1f191}'..='\u{1f19a}'), ()), (chars!('\u{1f1e6}'..='\u{1f1ff}'), ()), (chars!('\u{1f201}'..='\u{1f202}'), ()), (chars!('\u{1f21a}'..='\u{1f21a}'), ()), (chars!('\u{1f22f}'..='\u{1f22f}'), ()), (chars!('\u{1f232}'..='\u{1f23a}'), ()), (chars!('\u{1f250}'..='\u{1f251}'), ()), (chars!('\u{1f300}'..='\u{1f321}'), ()), (chars!('\u{1f324}'..='\u{1f393}'), ()), (chars!('\u{1f396}'..='\u{1f397}'), ()), (chars!('\u{1f399}'..='\u{1f39b}'), ()), (chars!('\u{1f39e}'..='\u{1f3f0}'), ()), (chars!('\u{1f3f3}'..='\u{1f3f5}'), ()), (chars!('\u{1f3f7}'..='\u{1f4fd}'), ()), (chars!('\u{1f4ff}'..='\u{1f53d}'), ()), (chars!('\u{1f549}'..='\u{1f54e}'), ()), (chars!('\u{1f550}'..='\u{1f567}'), ()), (chars!('\u{1f56f}'..='\u{1f570}'), ()), (chars!('\u{1f573}'..='\u{1f57a}'), ()), (chars!('\u{1f587}'..='\u{1f587}'), ()), (chars!('\u{1f58a}'..='\u{1f58d}'), ()), (chars!('\u{1f590}'..='\u{1f590}'), ()), (chars!('\u{1f595}'..='\u{1f596}'), ()), (chars!('\u{1f5a4}'..='\u{1f5a5}'), ()), (chars!('\u{1f5a8}'..='\u{1f5a8}'), ()), (chars!('\u{1f5b1}'..='\u{1f5b2}'), ()), (chars!('\u{1f5bc}'..='\u{1f5bc}'), ()), (chars!('\u{1f5c2}'..='\u{1f5c4}'), ()), (chars!('\u{1f5d1}'..='\u{1f5d3}'), ()), (chars!('\u{1f5dc}'..='\u{1f5de}'), ()), (chars!('\u{1f5e1}'..='\u{1f5e1}'), ()), (chars!('\u{1f5e3}'..='\u{1f5e3}'), ()), (chars!('\u{1f5e8}'..='\u{1f5e8}'), ()), (chars!('\u{1f5ef}'..='\u{1f5ef}'), ()), (chars!('\u{1f5f3}'..='\u{1f5f3}'), ()), (chars!('\u{1f5fa}'..='\u{1f64f}'), ()), (chars!('\u{1f680}'..='\u{1f6c5}'), ()), (chars!('\u{1f6cb}'..='\u{1f6d2}'), ()), (chars!('\u{1f6e0}'..='\u{1f6e5}'), ()), (chars!('\u{1f6e9}'..='\u{1f6e9}'), ()), (chars!('\u{1f6eb}'..='\u{1f6ec}'), ()), (chars!('\u{1f6f0}'..='\u{1f6f0}'), ()), (chars!('\u{1f6f3}'..='\u{1f6f8}'), ()), (chars!('\u{1f910}'..='\u{1f93a}'), ()), (chars!('\u{1f93c}'..='\u{1f93e}'), ()), (chars!('\u{1f940}'..='\u{1f945}'), ()), (chars!('\u{1f947}'..='\u{1f94c}'), ()), (chars!('\u{1f950}'..='\u{1f96b}'), ()), (chars!('\u{1f980}'..='\u{1f997}'), ()), (chars!('\u{1f9c0}'..='\u{1f9c0}'), ()), (chars!('\u{1f9d0}'..='\u{1f9e6}'), ()), ]) unic-emoji-char-0.9.0/tables/emoji_component.rsv010064400007650000024000000005001343520353600201030ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! CharDataTable::Range(&[ (chars!('\u{23}'..='\u{23}'), ()), (chars!('\u{2a}'..='\u{2a}'), ()), (chars!('\u{30}'..='\u{39}'), ()), (chars!('\u{1f1e6}'..='\u{1f1ff}'), ()), (chars!('\u{1f3fb}'..='\u{1f3ff}'), ()), ]) unic-emoji-char-0.9.0/tables/emoji_modifier.rsv010064400007650000024000000002361343520353600177050ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! CharDataTable::Range(&[ (chars!('\u{1f3fb}'..='\u{1f3ff}'), ()), ]) unic-emoji-char-0.9.0/tables/emoji_modifier_base.rsv010064400007650000024000000030131343520353600206730ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! CharDataTable::Range(&[ (chars!('\u{261d}'..='\u{261d}'), ()), (chars!('\u{26f9}'..='\u{26f9}'), ()), (chars!('\u{270a}'..='\u{270d}'), ()), (chars!('\u{1f385}'..='\u{1f385}'), ()), (chars!('\u{1f3c2}'..='\u{1f3c4}'), ()), (chars!('\u{1f3c7}'..='\u{1f3c7}'), ()), (chars!('\u{1f3ca}'..='\u{1f3cc}'), ()), (chars!('\u{1f442}'..='\u{1f443}'), ()), (chars!('\u{1f446}'..='\u{1f450}'), ()), (chars!('\u{1f466}'..='\u{1f469}'), ()), (chars!('\u{1f46e}'..='\u{1f46e}'), ()), (chars!('\u{1f470}'..='\u{1f478}'), ()), (chars!('\u{1f47c}'..='\u{1f47c}'), ()), (chars!('\u{1f481}'..='\u{1f483}'), ()), (chars!('\u{1f485}'..='\u{1f487}'), ()), (chars!('\u{1f4aa}'..='\u{1f4aa}'), ()), (chars!('\u{1f574}'..='\u{1f575}'), ()), (chars!('\u{1f57a}'..='\u{1f57a}'), ()), (chars!('\u{1f590}'..='\u{1f590}'), ()), (chars!('\u{1f595}'..='\u{1f596}'), ()), (chars!('\u{1f645}'..='\u{1f647}'), ()), (chars!('\u{1f64b}'..='\u{1f64f}'), ()), (chars!('\u{1f6a3}'..='\u{1f6a3}'), ()), (chars!('\u{1f6b4}'..='\u{1f6b6}'), ()), (chars!('\u{1f6c0}'..='\u{1f6c0}'), ()), (chars!('\u{1f6cc}'..='\u{1f6cc}'), ()), (chars!('\u{1f918}'..='\u{1f91c}'), ()), (chars!('\u{1f91e}'..='\u{1f91f}'), ()), (chars!('\u{1f926}'..='\u{1f926}'), ()), (chars!('\u{1f930}'..='\u{1f939}'), ()), (chars!('\u{1f93d}'..='\u{1f93e}'), ()), (chars!('\u{1f9d1}'..='\u{1f9dd}'), ()), ]) unic-emoji-char-0.9.0/tables/emoji_presentation.rsv010064400007650000024000000065361343520353600206330ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! CharDataTable::Range(&[ (chars!('\u{231a}'..='\u{231b}'), ()), (chars!('\u{23e9}'..='\u{23ec}'), ()), (chars!('\u{23f0}'..='\u{23f0}'), ()), (chars!('\u{23f3}'..='\u{23f3}'), ()), (chars!('\u{25fd}'..='\u{25fe}'), ()), (chars!('\u{2614}'..='\u{2615}'), ()), (chars!('\u{2648}'..='\u{2653}'), ()), (chars!('\u{267f}'..='\u{267f}'), ()), (chars!('\u{2693}'..='\u{2693}'), ()), (chars!('\u{26a1}'..='\u{26a1}'), ()), (chars!('\u{26aa}'..='\u{26ab}'), ()), (chars!('\u{26bd}'..='\u{26be}'), ()), (chars!('\u{26c4}'..='\u{26c5}'), ()), (chars!('\u{26ce}'..='\u{26ce}'), ()), (chars!('\u{26d4}'..='\u{26d4}'), ()), (chars!('\u{26ea}'..='\u{26ea}'), ()), (chars!('\u{26f2}'..='\u{26f3}'), ()), (chars!('\u{26f5}'..='\u{26f5}'), ()), (chars!('\u{26fa}'..='\u{26fa}'), ()), (chars!('\u{26fd}'..='\u{26fd}'), ()), (chars!('\u{2705}'..='\u{2705}'), ()), (chars!('\u{270a}'..='\u{270b}'), ()), (chars!('\u{2728}'..='\u{2728}'), ()), (chars!('\u{274c}'..='\u{274c}'), ()), (chars!('\u{274e}'..='\u{274e}'), ()), (chars!('\u{2753}'..='\u{2755}'), ()), (chars!('\u{2757}'..='\u{2757}'), ()), (chars!('\u{2795}'..='\u{2797}'), ()), (chars!('\u{27b0}'..='\u{27b0}'), ()), (chars!('\u{27bf}'..='\u{27bf}'), ()), (chars!('\u{2b1b}'..='\u{2b1c}'), ()), (chars!('\u{2b50}'..='\u{2b50}'), ()), (chars!('\u{2b55}'..='\u{2b55}'), ()), (chars!('\u{1f004}'..='\u{1f004}'), ()), (chars!('\u{1f0cf}'..='\u{1f0cf}'), ()), (chars!('\u{1f18e}'..='\u{1f18e}'), ()), (chars!('\u{1f191}'..='\u{1f19a}'), ()), (chars!('\u{1f1e6}'..='\u{1f1ff}'), ()), (chars!('\u{1f201}'..='\u{1f201}'), ()), (chars!('\u{1f21a}'..='\u{1f21a}'), ()), (chars!('\u{1f22f}'..='\u{1f22f}'), ()), (chars!('\u{1f232}'..='\u{1f236}'), ()), (chars!('\u{1f238}'..='\u{1f23a}'), ()), (chars!('\u{1f250}'..='\u{1f251}'), ()), (chars!('\u{1f300}'..='\u{1f320}'), ()), (chars!('\u{1f32d}'..='\u{1f335}'), ()), (chars!('\u{1f337}'..='\u{1f37c}'), ()), (chars!('\u{1f37e}'..='\u{1f393}'), ()), (chars!('\u{1f3a0}'..='\u{1f3ca}'), ()), (chars!('\u{1f3cf}'..='\u{1f3d3}'), ()), (chars!('\u{1f3e0}'..='\u{1f3f0}'), ()), (chars!('\u{1f3f4}'..='\u{1f3f4}'), ()), (chars!('\u{1f3f8}'..='\u{1f43e}'), ()), (chars!('\u{1f440}'..='\u{1f440}'), ()), (chars!('\u{1f442}'..='\u{1f4fc}'), ()), (chars!('\u{1f4ff}'..='\u{1f53d}'), ()), (chars!('\u{1f54b}'..='\u{1f54e}'), ()), (chars!('\u{1f550}'..='\u{1f567}'), ()), (chars!('\u{1f57a}'..='\u{1f57a}'), ()), (chars!('\u{1f595}'..='\u{1f596}'), ()), (chars!('\u{1f5a4}'..='\u{1f5a4}'), ()), (chars!('\u{1f5fb}'..='\u{1f64f}'), ()), (chars!('\u{1f680}'..='\u{1f6c5}'), ()), (chars!('\u{1f6cc}'..='\u{1f6cc}'), ()), (chars!('\u{1f6d0}'..='\u{1f6d2}'), ()), (chars!('\u{1f6eb}'..='\u{1f6ec}'), ()), (chars!('\u{1f6f4}'..='\u{1f6f8}'), ()), (chars!('\u{1f910}'..='\u{1f93a}'), ()), (chars!('\u{1f93c}'..='\u{1f93e}'), ()), (chars!('\u{1f940}'..='\u{1f945}'), ()), (chars!('\u{1f947}'..='\u{1f94c}'), ()), (chars!('\u{1f950}'..='\u{1f96b}'), ()), (chars!('\u{1f980}'..='\u{1f997}'), ()), (chars!('\u{1f9c0}'..='\u{1f9c0}'), ()), (chars!('\u{1f9d0}'..='\u{1f9e6}'), ()), ]) unic-emoji-char-0.9.0/tables/emoji_version.rsv010064400007650000024000000002061343520353600175710ustar0000000000000000// WARNING: Auto-generated by the `unic-gen` crate. // WARNING: DO NOT EDIT MANUALLY! UnicodeVersion { major: 5, minor: 0, micro: 0 } unic-emoji-char-0.9.0/tests/emoji_version_tests.rs010064400007650000024000000014571343520353600205260ustar0000000000000000// 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 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. use unic_emoji_char; use unic_ucd_version; #[test] fn test_emoji_data_version_against_ucd_version() { // At the moment, Emoji Version is strictly smaller than Unicode Version. Emoji Version is going // to be *synced* with Unicode Version, but may receive minor updates separately. assert!(unic_emoji_char::EMOJI_VERSION.major <= unic_ucd_version::UNICODE_VERSION.major); } unic-emoji-char-0.9.0/.cargo_vcs_info.json0000644000000001120000000000000140450ustar00{ "git": { "sha1": "8a6ce83063d90b91ae2ce59eddb803edd393fca9" } }