From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/unic-char-range/src/lib.rs | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 vendor/unic-char-range/src/lib.rs (limited to 'vendor/unic-char-range/src/lib.rs') diff --git a/vendor/unic-char-range/src/lib.rs b/vendor/unic-char-range/src/lib.rs new file mode 100644 index 000000000..1f6e82c47 --- /dev/null +++ b/vendor/unic-char-range/src/lib.rs @@ -0,0 +1,75 @@ +// 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. + +#![cfg_attr(not(feature = "std"), no_std)] +#![cfg_attr(feature = "exact-size-is-empty", feature(exact_size_is_empty))] +#![cfg_attr(feature = "trusted-len", feature(trusted_len))] +#![warn( + bad_style, + missing_debug_implementations, + missing_docs, + unconditional_recursion +)] +#![deny(unsafe_code)] + +//! # UNIC — Unicode Character Tools — Character Range +//! +//! A simple way to control iteration over a range of characters. +//! +//! # Examples +//! +//! ``` +//! #[macro_use] extern crate unic_char_range; +//! +//! # fn main() { +//! for character in chars!('a'..='z') { +//! // character is each character in the lowercase english alphabet in order +//! } +//! +//! for character in chars!(..) { +//! // character is every valid char from lowest codepoint to highest +//! } +//! # } +//! ``` +//! +//! # Features +//! +//! None of these features are included by default; they rely on unstable Rust feature gates. +//! +//! - `unstable`: enables all features +//! - `exact-size-is-empty`: provide a specific impl of [`ExactSizeIterator::is_empty`][is_empty] +//! - `trusted-len`: impl the [`TrustedLen`] contract +//! +//! [is_empty]: https://doc.rust-lang.org/std/iter/trait.ExactSizeIterator.html#method.is_empty +//! [`FusedIterator`]: https://doc.rust-lang.org/std/iter/trait.FusedIterator.html +//! [`TrustedLen`]: https://doc.rust-lang.org/std/iter/trait.TrustedLen.html +//! + +mod pkg_info; +pub use crate::pkg_info::{PKG_DESCRIPTION, PKG_NAME, PKG_VERSION}; + +mod iter; +pub use crate::iter::CharIter; + +mod range; +pub use crate::range::CharRange; + +#[macro_use] +mod macros; + +mod step; + +mod iter_fused; + +#[cfg(feature = "trusted-len")] +mod iter_trusted_len; + +#[cfg(feature = "rayon")] +mod par_iter; -- cgit v1.2.3