Skip to main content

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}