logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

bool

Author

       MongoDB, Inc

Description

       Creates a bson_iter_t and starts iteration on a field at the offset.

       bson_iter_init_from_data_at_offset() is useful for situations where the progress of a bson_iter_t must be
       saved  and  restored  without  relying  on  the  bson_iter_t  data  layout.  Saving the progress could be
       accomplished by:

       • Saving the current field's key length with bson_iter_key_len()

       • Saving the current offset with bson_iter_offset()

       • Saving the data pointer of the iterated bson_t with bson_get_data()

       • Saving the data length of the iterated bson_t with the len struct field

       Then later, these saved values can be passed to bson_iter_init_from_data_at_offset() to  reconstruct  the
       bson_iter_t in constant time.

Parameters

iter: A bson_iter_t.

       • data: A buffer to initialize with. This is not validated.

       • length: The length of data in bytes. This is not validated.

       • offset:  The  offset  of  the field to start iterating. This is not validated. This should be an offset
         previously obtained from bson_iter_offset().

       • keylen: The string length of the key of the field to start  iterating.  This  is  not  validated.  This
         should be a length previously obtained from bson_iter_key_len().

Returns

       Returns true if the iter was successfully initialized.

       SEEALSO:bson_iter_key_len()bson_iter_offset()bson_get_data()

Synopsis

          bool
          bson_iter_init_from_data_at_offset (bson_iter_t *iter,
                                              const uint8_t *data,
                                              size_t length,
                                              uint32_t offset,
                                              uint32_t keylen);

See Also