From f31b101ce1e921a026ba234b1f0a83b0392bc118 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 20 May 2026 08:33:49 +0900 Subject: fix(compile): fix all remaining compile errors Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/seld/json_lint/duplicate_key_exception.rs | 10 ++++++++++ .../src/seld/json_lint/json_parser.rs | 8 ++++++++ .../src/seld/json_lint/parsing_exception.rs | 15 +++++++++++++++ .../src/seld/signal/signal_handler.rs | 8 ++++++++ 4 files changed, 41 insertions(+) (limited to 'crates/shirabe-external-packages/src/seld') 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, +} + +impl DuplicateKeyException { + pub fn get_details(&self) -> &IndexMap { + &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 { todo!() } + + /// PHP: JsonParser::lint() — returns null on success, ParsingException on failure. + pub fn lint( + &mut self, + _json: &str, + ) -> Option { + 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) -> Self { + Self { message, code: 0 } + } + + pub fn get_message(&self) -> &str { + &self.message + } + + pub fn get_details(&self) -> indexmap::IndexMap { + // 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) diff --git a/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs b/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs index 3c53066..5b5254a 100644 --- a/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs +++ b/crates/shirabe-external-packages/src/seld/signal/signal_handler.rs @@ -13,4 +13,12 @@ impl SignalHandler { pub fn unregister(&self) { todo!() } + + pub fn exit_with_last_signal(&self) { + todo!() + } + + pub fn is_triggered(&self) -> bool { + todo!() + } } -- cgit v1.3.1