14#ifndef _FLDEEPITERATOR_H 
   15#define _FLDEEPITERATOR_H 
   73                                size_t* outDepth) 
FLAPI;
 
#define FL_NONNULL
Definition CompilerSupport.h:95
#define FL_NULLABLE
Definition CompilerSupport.h:94
#define FLEECE_PUBLIC
Definition CompilerSupport.h:269
#define FL_ASSUME_NONNULL_BEGIN
Definition CompilerSupport.h:92
#define FL_ASSUME_NONNULL_END
Definition CompilerSupport.h:93
#define FLAPI
Definition CompilerSupport.h:292
struct _FLDeepIterator * FLDeepIterator
A reference to a deep iterator.
Definition FLDeepIterator.h:34
FLEECE_PUBLIC FLDeepIterator FLDeepIterator_New(FLValue FL_NULLABLE)
Creates a FLDeepIterator to iterate over a dictionary.
FLEECE_PUBLIC FLValue FL_NULLABLE FLDeepIterator_GetParent(FLDeepIterator)
Returns the parent/container of the current value, or NULL at the end of iteration.
FLEECE_PUBLIC uint32_t FLDeepIterator_GetIndex(FLDeepIterator)
Returns the array index of the current value in its parent, or 0 if not in an array.
FLEECE_PUBLIC FLSliceResult FLDeepIterator_GetPathString(FLDeepIterator)
Returns the current path in JavaScript format.
FLEECE_PUBLIC FLSlice FLDeepIterator_GetKey(FLDeepIterator)
Returns the key of the current value in its parent, or an empty slice if not in a dictionary.
FLEECE_PUBLIC size_t FLDeepIterator_GetDepth(FLDeepIterator)
Returns the current depth in the hierarchy, starting at 1 for the top-level children.
FLEECE_PUBLIC bool FLDeepIterator_Next(FLDeepIterator)
Advances the iterator to the next value, or returns false if at the end.
FLEECE_PUBLIC void FLDeepIterator_GetPath(FLDeepIterator, FLPathComponent *FL_NONNULL *FL_NONNULL outPath, size_t *outDepth)
Returns the path as an array of FLPathComponents.
FLEECE_PUBLIC FLValue FL_NULLABLE FLDeepIterator_GetValue(FLDeepIterator)
Returns the current value being iterated over.
FLEECE_PUBLIC FLSliceResult FLDeepIterator_GetJSONPointer(FLDeepIterator)
Returns the current path in JSONPointer format (RFC 6901).
FLEECE_PUBLIC void FLDeepIterator_Free(FLDeepIterator FL_NULLABLE)
FLEECE_PUBLIC void FLDeepIterator_SkipChildren(FLDeepIterator)
Tells the iterator to skip the children of the current value.
const struct _FLValue * FLValue
A reference to a value of any type.
Definition FLBase.h:35
Definition FLDeepIterator.h:65
uint32_t index
Array index, only if there's no key.
Definition FLDeepIterator.h:67
FLSlice key
Dict key, or kFLSliceNull if none.
Definition FLDeepIterator.h:66
A simple reference to a block of memory.
Definition FLSlice.h:45
A heap-allocated block of memory returned from an API call.
Definition FLSlice.h:66