pub struct Assignment<'a> {
    pub assigned: Cow<'a, Value>,
    pub replaced: Value,
    pub created_or_mutated: Pointer,
    pub assigned_to: Pointer,
}
Expand description

The data structure returned from a successful call to assign.

Fields

assigned: Cow<'a, Value>

The value that was assigned.

In the event a path is created, this will be the serde_json::Value encompassing the new branch.

replaced: Value

The value that was replaced.

Note: serde_json::Value::Null is utilized if the value did not previously exist.

created_or_mutated: Pointer

The path which was created or replaced.

For example, if you had the json:

{ "foo": { "bar": "baz" } }

and you assigned "new_value" to "/foo/qux/quux", then created_or_mutated would be Some("/foo/qux") as "qux" is the top-level value assigned.

The resulting json would have the following structure:

{
    "foo": {
       "bar": "baz",
        "qux": {
            "quux": "new_value"
        }
    }
}

Note: if a portion of the path contains a leaf node that is to be overridden by an object or an array, then the path will be the from the leaf that is replaced.

For example, if you had the json:

{ "foo:" "bar" }

and you assigned "new_value" to "/foo/bar/baz", then created would be Some("/foo/bar") as "/foo/bar" is the new path object.

assigned_to: Pointer

A Pointer consisting of the path which was assigned.

Example

use serde_json::json;
use jsonptr::{Pointer, Assign};
let mut data = json!({ "foo": ["zero"] });
let mut ptr = Pointer::try_from("/foo/-").unwrap();
let assignment = data.assign(&mut ptr, "one".into()).unwrap();
assert_eq!(assignment.assigned_to, Pointer::try_from("/foo/1").unwrap());

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.