streamdal-transform 0.0.7

JSON data transformation lib used by snitch components
Documentation
<a href="https://crates.io/crates/streamdal-transform/"><img src="https://img.shields.io/crates/v/streamdal-transform.svg"></a>
<a href="https://docs.rs/streamdal-transform/"><img src="https://img.shields.io/badge/docs-rustdoc-369"></a>


streamdal-transform
==================

Library used by [streamdal/wasm](https://github.com/streamdal/wasm) to 
perform transformations on JSON payloads.

Currently only has support for `overwrite`, `mask` and `obfuscate`.

## Usage

```rust
fn main() {
    let sample_json = r#"{"hello": "world"}"#;

    let req = Request {
        data: sample_json.into(),
        path: "hello".to_string(),
        value: r#""baz""#.to_string(),
    };

    let updated_json = streamdal_transform::transform::overwrite(&req).unwrap();

    println!(
        "Input JSON: {} || Result JSON: {}",
        sample_json, updated_json,
    )
}
```

## IMPORTANT 

1. `overwrite()`
    1. Overwrite value will be used as-is - if target is intended to be a 
string, then make sure to include quotes in the payload ( Ie. `"123"`)
1. `mask()`
   2. Works for numbers and strings
   3. For numbers, it will replace 80% of the number characters with `0`
   4. For strings, it will replace 80% of the characters with `*`
1. `obfuscate()`
   2. Works ONLY on strings
   3. Will replace 100% of the characters with a sha256 hash

## Use as-is - has not been tested in production :)