aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-external-packages/src/seld/json_lint
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-20 08:33:49 +0900
committernsfisis <nsfisis@gmail.com>2026-05-20 08:33:57 +0900
commitf31b101ce1e921a026ba234b1f0a83b0392bc118 (patch)
treeb7ac2aa84d71ebd162cc21aeab0240e7e0544988 /crates/shirabe-external-packages/src/seld/json_lint
parent5e31fa33c3b5cf726a57a063b8e7a070869250fe (diff)
downloadphp-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.gz
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.zst
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.zip
fix(compile): fix all remaining compile errors
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/seld/json_lint')
-rw-r--r--crates/shirabe-external-packages/src/seld/json_lint/duplicate_key_exception.rs10
-rw-r--r--crates/shirabe-external-packages/src/seld/json_lint/json_parser.rs8
-rw-r--r--crates/shirabe-external-packages/src/seld/json_lint/parsing_exception.rs15
3 files changed, 33 insertions, 0 deletions
diff --git a/crates/shirabe-external-packages/src/seld/json_lint/duplicate_key_exception.rs b/crates/shirabe-external-packages/src/seld/json_lint/duplicate_key_exception.rs
index 9e35396..df61a91 100644
--- a/crates/shirabe-external-packages/src/seld/json_lint/duplicate_key_exception.rs
+++ b/crates/shirabe-external-packages/src/seld/json_lint/duplicate_key_exception.rs
@@ -1,7 +1,17 @@
+use indexmap::IndexMap;
+use shirabe_php_shim::PhpMixed;
+
#[derive(Debug)]
pub struct DuplicateKeyException {
pub message: String,
pub code: i64,
+ pub details: IndexMap<String, PhpMixed>,
+}
+
+impl DuplicateKeyException {
+ pub fn get_details(&self) -> &IndexMap<String, PhpMixed> {
+ &self.details
+ }
}
impl std::fmt::Display for DuplicateKeyException {
diff --git a/crates/shirabe-external-packages/src/seld/json_lint/json_parser.rs b/crates/shirabe-external-packages/src/seld/json_lint/json_parser.rs
index 31f64df..dbff9a0 100644
--- a/crates/shirabe-external-packages/src/seld/json_lint/json_parser.rs
+++ b/crates/shirabe-external-packages/src/seld/json_lint/json_parser.rs
@@ -19,4 +19,12 @@ impl JsonParser {
pub fn parse(&self, _json: &str, _flags: u32) -> anyhow::Result<PhpMixed> {
todo!()
}
+
+ /// PHP: JsonParser::lint() — returns null on success, ParsingException on failure.
+ pub fn lint(
+ &mut self,
+ _json: &str,
+ ) -> Option<crate::seld::json_lint::parsing_exception::ParsingException> {
+ todo!()
+ }
}
diff --git a/crates/shirabe-external-packages/src/seld/json_lint/parsing_exception.rs b/crates/shirabe-external-packages/src/seld/json_lint/parsing_exception.rs
index 3ec6b6b..b756c1b 100644
--- a/crates/shirabe-external-packages/src/seld/json_lint/parsing_exception.rs
+++ b/crates/shirabe-external-packages/src/seld/json_lint/parsing_exception.rs
@@ -4,6 +4,21 @@ pub struct ParsingException {
pub code: i64,
}
+impl ParsingException {
+ pub fn new(message: String, _details: Option<shirabe_php_shim::PhpMixed>) -> Self {
+ Self { message, code: 0 }
+ }
+
+ pub fn get_message(&self) -> &str {
+ &self.message
+ }
+
+ pub fn get_details(&self) -> indexmap::IndexMap<String, shirabe_php_shim::PhpMixed> {
+ // TODO(phase-b): PHP ParsingException exposes ['text', 'line', 'token'] details
+ indexmap::IndexMap::new()
+ }
+}
+
impl std::fmt::Display for ParsingException {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.message)