blob: 4ebe2c32e745271916f9ab05350310ec24c854fe (
plain)
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
|
//! ref: composer/vendor/composer/pcre/src/PcreException.php
use super::preg::{preg_last_error, preg_last_error_msg};
#[derive(Debug)]
pub struct PcreException(pub shirabe_php_shim::RuntimeException);
impl PcreException {
pub fn from_function(function: &str, pattern: &str) -> PcreException {
let code = preg_last_error();
PcreException(shirabe_php_shim::RuntimeException {
message: format!(
"{}(): failed executing \"{}\": {}",
function,
pattern,
Self::pcre_last_error_message(code)
),
code,
})
}
// Modern PHP always provides preg_last_error_msg(), so the legacy fallbacks
// that scanned the pcre constants are not reproduced.
fn pcre_last_error_message(_code: i64) -> String {
preg_last_error_msg()
}
}
impl std::fmt::Display for PcreException {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
impl std::error::Error for PcreException {}
|