The MapDiff type represents the result of comparing two
rules.Map objects.
There is no MapDiff literal for use in creating diffs. MapDiff objects
are returned by calls to the rules.Map#diff function.
The MapDiff functions described below are called by chaining with
rules.Map#diff. All MapDiff functions return rules.Set
objects listing keys compared between Map objects.
// Compare two Map objects and return whether the key "a" has been// affected; that is, key "a" was added or removed, or its value was updated.request.resource.data.diff(resource.data).affectedKeys().hasOnly(["a"]);
Returns a rules.Set, which lists any keys that have been added to,
removed from or modified from the Map calling diff() compared to
the Map passed to diff(). This function returns the set
equivalent to the combined results of MapDiff.addedKeys(),
MapDiff.removedKeys() and MapDiff.changedKeys().
[null,null,["Last updated 2020-03-04 UTC."],[],[],null,["[rules](/docs/reference/rules/rules).MapDiff \ninterface static\n\nMapDiff type.\n\nThe MapDiff type represents the result of comparing two\n[rules.Map](/docs/reference/rules/rules.Map) objects.\n\nThere is no MapDiff literal for use in creating diffs. MapDiff objects\nare returned by calls to the [rules.Map#diff](/docs/reference/rules/rules.Map#diff) function.\n\nThe MapDiff functions described below are called by chaining with\n[rules.Map#diff](/docs/reference/rules/rules.Map#diff). All MapDiff functions return [rules.Set](/docs/reference/rules/rules.Set)\nobjects listing keys compared between Map objects. \n\n```scilab\n// Compare two Map objects and return whether the key \"a\" has been\n// affected; that is, key \"a\" was added or removed, or its value was updated.\nrequest.resource.data.diff(resource.data).affectedKeys().hasOnly([\"a\"]);\n```\n\nMethods\n\naddedKeys\n\naddedKeys() returns [rules.Set](/docs/reference/rules/rules.Set)\n\nReturns a [rules.Set](/docs/reference/rules/rules.Set), which lists any keys that the Map calling\n`diff()` contains that the Map passed to `diff()` does\nnot.\n\nReturns\n\n: `non-null `[rules.Set](/docs/reference/rules/rules.Set) , a list of keys added to the [rules.Map](/docs/reference/rules/rules.Map) passed to\n the `Map.diff()` function.\n\nExample \n\n {\"a\":1}.diff({}).addedKeys() == [\"a\"].toSet()\n\naffectedKeys\n\naffectedKeys() returns [rules.Set](/docs/reference/rules/rules.Set)\n\nReturns a [rules.Set](/docs/reference/rules/rules.Set), which lists any keys that have been added to,\nremoved from or modified from the Map calling `diff()` compared to\nthe Map passed to `diff()`. This function returns the set\nequivalent to the combined results of `MapDiff.addedKeys()`,\n`MapDiff.removedKeys()` and `MapDiff.changedKeys()`. \n\n```text\n({\"a\":0, \"c\":0, \"u\":0}).diff({\"r\":0, \"c\":1, \"u\": 0}).affectedKeys() ==\n [\"a\", \"r\", \"c\"].toSet()\n```\n\nReturns\n\n: `non-null `[rules.Set](/docs/reference/rules/rules.Set) ,a list of keys added to, removed from or changed from\n the [rules.Map](/docs/reference/rules/rules.Map) passed to the `Map.diff()` function.\n\nchangedKeys\n\nchangedKeys() returns [rules.Set](/docs/reference/rules/rules.Set)\n\nReturns a [rules.Set](/docs/reference/rules/rules.Set), which lists any keys that appear in both the Map\ncalling `diff()` and the Map passed to `diff()`, but\nwhose values are not equal.\n\nReturns\n\n: `non-null `[rules.Set](/docs/reference/rules/rules.Set) , a list of keys that appear in both [rules.Map](/docs/reference/rules/rules.Map)s\n but whose values are not equal.\n\nExample \n\n {\"a\":0}.diff({\"a\":1, \"b\":4}).changedKeys() == [\"a\"].toSet()\n\nremovedKeys\n\nremovedKeys() returns [rules.Set](/docs/reference/rules/rules.Set)\n\nReturns a [rules.Set](/docs/reference/rules/rules.Set), which lists any keys that the Map calling\n`diff()` does not contain compared to the Map passed to\n`diff()`.\n\nReturns\n\n: `non-null `[rules.Set](/docs/reference/rules/rules.Set) , a list of keys removed from the [rules.Map](/docs/reference/rules/rules.Map)\n passed to the `Map.diff()` function.\n\nExample \n\n {}.diff({\"a\":1}).removedKeys() == [\"a\"].toSet()\n\nunchangedKeys\n\nunchangedKeys() returns [rules.Set](/docs/reference/rules/rules.Set)\n\nReturns a [rules.Set](/docs/reference/rules/rules.Set), which lists any keys that appear in both the Map\ncalling `diff()` and the Map passed to `diff()`, and\nwhose values are equal.\n\nReturns\n\n: `non-null `[rules.Set](/docs/reference/rules/rules.Set) , a list of keys that appear in both [rules.Map](/docs/reference/rules/rules.Map)s\n but whose values are equal.\n\nExample \n\n {\"a\": 0}.diff({\"a\":0}).unchangedKeys() == [\"a\"].toSet()"]]