diff --git a/include/zenoh-pico/api/primitives.h b/include/zenoh-pico/api/primitives.h index 37edbaba2..e1a5beff4 100644 --- a/include/zenoh-pico/api/primitives.h +++ b/include/zenoh-pico/api/primitives.h @@ -387,6 +387,17 @@ z_result_t z_encoding_set_schema_from_substr(z_loaned_encoding_t *encoding, cons */ z_result_t z_encoding_to_string(const z_loaned_encoding_t *encoding, z_owned_string_t *string); +/** + * Checks if 2 encoding are equal + * + * Parameters: + * left: Pointer to first :c:type:`z_loaned_encoding_t` to compare. + * right: Pointer to second :c:type:`z_loaned_encoding_t` to compare. + * + * Returns ``true`` if `left` equals to `right`, ``false`` otherwise. + */ +bool z_encoding_equals(const z_loaned_encoding_t *left, const z_loaned_encoding_t *right); + /** * Gets the bytes data from a reply error payload by aliasing it. * diff --git a/src/api/api.c b/src/api/api.c index d20ac38b2..b693bf53f 100644 --- a/src/api/api.c +++ b/src/api/api.c @@ -406,6 +406,10 @@ z_result_t z_encoding_to_string(const z_loaned_encoding_t *encoding, z_owned_str return _Z_RES_OK; } +bool z_encoding_equals(const z_loaned_encoding_t *left, const z_loaned_encoding_t *right) { + return left->id == right->id && _z_string_equals(&left->schema, &right->schema); +} + z_result_t z_slice_copy_from_buf(z_owned_slice_t *slice, const uint8_t *data, size_t len) { slice->_val = _z_slice_copy_from_buf(data, len); if (slice->_val.start == NULL) {