diff options
Diffstat (limited to 'crates/shirabe-pcre')
| -rw-r--r-- | crates/shirabe-pcre/Cargo.toml | 16 | ||||
| -rw-r--r-- | crates/shirabe-pcre/LICENSE | 19 | ||||
| -rw-r--r-- | crates/shirabe-pcre/src/lib.rs | 3 | ||||
| -rw-r--r-- | crates/shirabe-pcre/src/preg.rs | 117 |
4 files changed, 0 insertions, 155 deletions
diff --git a/crates/shirabe-pcre/Cargo.toml b/crates/shirabe-pcre/Cargo.toml deleted file mode 100644 index 4c884440..00000000 --- a/crates/shirabe-pcre/Cargo.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "shirabe-pcre" -version.workspace = true -edition.workspace = true -rust-version.workspace = true -description = "A Rust port of composer/pcre" -repository.workspace = true -license.workspace = true - -[dependencies] -shirabe-php-shim.workspace = true -indexmap.workspace = true -regex.workspace = true - -[lints] -workspace = true diff --git a/crates/shirabe-pcre/LICENSE b/crates/shirabe-pcre/LICENSE deleted file mode 100644 index c5a282ff..00000000 --- a/crates/shirabe-pcre/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2021 Composer - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/crates/shirabe-pcre/src/lib.rs b/crates/shirabe-pcre/src/lib.rs deleted file mode 100644 index 20c37d02..00000000 --- a/crates/shirabe-pcre/src/lib.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod preg; - -pub use preg::*; diff --git a/crates/shirabe-pcre/src/preg.rs b/crates/shirabe-pcre/src/preg.rs deleted file mode 100644 index 753a4678..00000000 --- a/crates/shirabe-pcre/src/preg.rs +++ /dev/null @@ -1,117 +0,0 @@ -//! ref: composer/vendor/composer/pcre/src/Preg.php -//! -//! The following two exception classes are intentionally not ported: -//! -//! - `PcreException`: thrown when a `preg_*()` call returns false. Composer never feeds a pattern -//! that fails to compile at runtime, so such a failure would be a programming error rather than -//! a recoverable condition; they panic instead. -//! - `UnexpectedNullMatchException`: thrown by the `Preg::*StrictGroups()` variants when a capture -//! group did not participate. Those variants were dropped because Rust's `Option` already -//! distinguishes participating from non-participating groups. -//! -//! See docs/dev/regex-porting.md for more detailed regex porting rules. - -pub use shirabe_php_shim::{CaptureKey, PregMatches, PregMatchesAll, PregMatchesAllWithOffsets}; -use shirabe_php_shim::{ - PregPattern, preg_grep, preg_match_all_offset_capture, preg_match_all2, preg_match2, - preg_replace_callback, preg_replace2, -}; - -#[derive(Debug)] -pub struct Preg; - -impl Preg { - pub fn match3<'h>(pattern: impl PregPattern, subject: &'h str) -> Option<PregMatches<'h>> { - Self::match4(pattern, subject, 0) - } - - pub fn match4<'h>( - pattern: impl PregPattern, - subject: &'h str, - offset: usize, - ) -> Option<PregMatches<'h>> { - preg_match2(pattern, subject, offset) - } - - pub fn match_all(pattern: impl PregPattern, subject: &str) -> usize { - Self::match_all2(pattern, subject).occurrence_count() - } - - pub fn match_all2(pattern: impl PregPattern, subject: &str) -> PregMatchesAll { - preg_match_all2(pattern, subject) - } - - fn match_all_with_offsets5( - pattern: impl PregPattern, - subject: &str, - ) -> PregMatchesAllWithOffsets { - preg_match_all_offset_capture(pattern, subject) - } - - pub fn replace(pattern: impl PregPattern, replacement: &str, subject: &str) -> String { - preg_replace2(pattern, replacement, subject, -1, None) - } - - pub fn replace4( - pattern: impl PregPattern, - replacement: &str, - subject: &str, - limit: i64, - ) -> String { - preg_replace2(pattern, replacement, subject, limit, None) - } - - pub fn replace5( - pattern: impl PregPattern, - replacement: &str, - subject: &str, - limit: i64, - count: &mut usize, - ) -> String { - preg_replace2(pattern, replacement, subject, limit, Some(count)) - } - - pub fn replace_callback<'h, F: FnMut(&PregMatches<'h>) -> String>( - pattern: impl PregPattern, - mut replacement: F, - subject: &'h str, - ) -> String { - let adapter = |matches: &PregMatches<'h>| Ok(replacement(matches)); - - preg_replace_callback(pattern, adapter, subject).expect("$replacement cannot fail") - } - - pub fn grep<T: AsRef<str>>( - pattern: impl PregPattern, - array: impl IntoIterator<Item = T>, - ) -> impl Iterator<Item = T> { - preg_grep(pattern, array) - } - - pub fn is_match(pattern: impl PregPattern, subject: &str) -> bool { - Self::match4(pattern, subject, 0).is_some() - } - - pub fn is_match3<'h>(pattern: impl PregPattern, subject: &'h str) -> Option<PregMatches<'h>> { - Self::match4(pattern, subject, 0) - } - - pub fn is_match4<'h>( - pattern: impl PregPattern, - subject: &'h str, - offset: usize, - ) -> Option<PregMatches<'h>> { - Self::match4(pattern, subject, offset) - } - - pub fn is_match_all(pattern: impl PregPattern, subject: &str) -> PregMatchesAll { - Self::match_all2(pattern, subject) - } - - pub fn is_match_all_with_offsets3( - pattern: impl PregPattern, - subject: &str, - ) -> PregMatchesAllWithOffsets { - Self::match_all_with_offsets5(pattern, subject) - } -} |
