1 unstable release

0.1.0 Apr 10, 2023

#722 in Debugging

MIT license

87KB
506 lines

DiffLogger

generates a log of changes for JSON values

Example

use diff_logger::DiffLogger;
use serde_json::json;

fn main() {
    let logger = DiffLogger::new().set_header("timestamp", false);

    let prev = json!({
        "name": "David",
        "age": 43,
        "ver": {
            "timestamp": "2023-04-07T11:17:50+00:00",
            "value": "some text",
        },
        "state": {
            "timestamp": "2023-04-07T11:17:50+00:00",
            "removedField": "some text",
            "valueChange": 45
        },
        "email": [
            { "num": "david1@email.com"},
        ]
    });

    let next = json!(
    {
        "name": "John",
        "age": 35,
        "state": {
            "timestamp": "2023-04-07T12:17:50+00:00",
            "newField": 4,
            "valueChange": 42352
        },
        "ver": {
            "timestamp": "2023-04-07T11:18:50+00:00",
            "value": "some text",
        },
        "email": [
            { "num": "John@email.com"},
        ]
    });

    println!("----------------------\n");
    logger.log_diff(&prev, &next);
    println!("\n----------------------");
}

logs:

demo

Dependencies

~1–12MB
~79K SLoC