lawkit_core/diffx_core_mock.rs
1// Temporary mock implementation of diffx-core functionality
2// TODO: Remove this when diffx reboot is complete and diffx-core is available
3
4use serde_json::Value;
5
6/// Mock DiffResult enum matching diffx-core's structure
7#[derive(Debug, Clone)]
8pub enum DiffResult {
9 /// Value was modified
10 Modified(String, Value, Value),
11 /// Value was added
12 Added(String, Value),
13 /// Value was removed
14 Removed(String, Value),
15 /// Type was changed
16 TypeChanged(String, Value, Value),
17 /// No difference
18 Unchanged,
19}
20
21/// Mock diff function - returns empty result for now
22pub fn diff(_old: &Value, _new: &Value, _options: Option<()>) -> Result<Vec<DiffResult>, String> {
23 // Return empty diff results - indicates no differences detected
24 // This is a safe fallback until diffx-core is available
25 Ok(vec![])
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31 use serde_json::json;
32
33 #[test]
34 fn test_mock_diff() {
35 let old = json!({"a": 1});
36 let new = json!({"a": 2});
37 let result = diff(&old, &new, None);
38 assert!(result.is_ok());
39 assert_eq!(result.unwrap().len(), 0); // Mock returns empty diff
40 }
41}