diff options
Diffstat (limited to 'vendor/unic-emoji-char/src')
-rw-r--r-- | vendor/unic-emoji-char/src/emoji.rs | 106 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/emoji_component.rs | 108 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/emoji_modifier.rs | 106 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/emoji_modifier_base.rs | 106 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/emoji_presentation.rs | 106 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/emoji_version.rs | 17 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/lib.rs | 47 | ||||
-rw-r--r-- | vendor/unic-emoji-char/src/pkg_info.rs | 20 |
8 files changed, 616 insertions, 0 deletions
diff --git a/vendor/unic-emoji-char/src/emoji.rs b/vendor/unic-emoji-char/src/emoji.rs new file mode 100644 index 000000000..1e5388bcf --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji.rs @@ -0,0 +1,106 @@ +// 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. + +//! 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); + } +} diff --git a/vendor/unic-emoji-char/src/emoji_component.rs b/vendor/unic-emoji-char/src/emoji_component.rs new file mode 100644 index 000000000..eb629d399 --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji_component.rs @@ -0,0 +1,108 @@ +// 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. + +//! 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); + } +} diff --git a/vendor/unic-emoji-char/src/emoji_modifier.rs b/vendor/unic-emoji-char/src/emoji_modifier.rs new file mode 100644 index 000000000..863370ab1 --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji_modifier.rs @@ -0,0 +1,106 @@ +// 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. + +//! 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); + } +} diff --git a/vendor/unic-emoji-char/src/emoji_modifier_base.rs b/vendor/unic-emoji-char/src/emoji_modifier_base.rs new file mode 100644 index 000000000..c903914ff --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji_modifier_base.rs @@ -0,0 +1,106 @@ +// 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. + +//! 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); + } +} diff --git a/vendor/unic-emoji-char/src/emoji_presentation.rs b/vendor/unic-emoji-char/src/emoji_presentation.rs new file mode 100644 index 000000000..25e9e4cd8 --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji_presentation.rs @@ -0,0 +1,106 @@ +// 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. + +//! 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); + } +} diff --git a/vendor/unic-emoji-char/src/emoji_version.rs b/vendor/unic-emoji-char/src/emoji_version.rs new file mode 100644 index 000000000..62a419626 --- /dev/null +++ b/vendor/unic-emoji-char/src/emoji_version.rs @@ -0,0 +1,17 @@ +// 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. + +pub use unic_ucd_version::UnicodeVersion; + +/// The [Emoji Version] of character property data. +/// +/// Refs: +/// - <https://unicode.org/reports/tr51/> +pub const EMOJI_VERSION: UnicodeVersion = include!("../tables/emoji_version.rsv"); diff --git a/vendor/unic-emoji-char/src/lib.rs b/vendor/unic-emoji-char/src/lib.rs new file mode 100644 index 000000000..38be97169 --- /dev/null +++ b/vendor/unic-emoji-char/src/lib.rs @@ -0,0 +1,47 @@ +// 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. + +#![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}; diff --git a/vendor/unic-emoji-char/src/pkg_info.rs b/vendor/unic-emoji-char/src/pkg_info.rs new file mode 100644 index 000000000..a1ab2853f --- /dev/null +++ b/vendor/unic-emoji-char/src/pkg_info.rs @@ -0,0 +1,20 @@ +// 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. + +//! 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"); |