Couchbase Lite C
Couchbase Lite C API
FLKeyPath.h
Go to the documentation of this file.
1//
2// FLKeyPath.h
3//
4// Copyright 2016-Present Couchbase, Inc.
5//
6// Use of this software is governed by the Business Source License included
7// in the file licenses/BSL-Couchbase.txt. As of the Change Date specified
8// in that file, in accordance with the Business Source License, use of this
9// software will be governed by the Apache License, Version 2.0, included in
10// the file licenses/APL2.txt.
11//
12
13#pragma once
14#ifndef _FLKEYPATH_H
15#define _FLKEYPATH_H
16
17#include "FLBase.h"
18
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25 // This is the C API! For the C++ API, see Fleece.hh.
26
27
43#ifndef FL_IMPL
44 typedef struct _FLKeyPath* FLKeyPath;
45#endif
46
49 FLError* FL_NULLABLE outError) FLAPI;
50
53
56 FLValue root) FLAPI;
57
62 FLError* FL_NULLABLE outError) FLAPI;
63
66
69
72 size_t i,
73 FLSlice *outDictKey,
74 int32_t *outArrayIndex) FLAPI;
75
78#ifdef __cplusplus
79}
80#endif
81
83
84#endif // _FLKEYPATH_H
#define FL_NULLABLE
Definition: CompilerSupport.h:87
#define FLEECE_PUBLIC
Definition: CompilerSupport.h:254
#define FL_ASSUME_NONNULL_BEGIN
Definition: CompilerSupport.h:85
#define NODISCARD
Definition: CompilerSupport.h:59
#define FL_ASSUME_NONNULL_END
Definition: CompilerSupport.h:86
#define FLAPI
Definition: CompilerSupport.h:260
NODISCARD FLEECE_PUBLIC FLKeyPath FL_NULLABLE FLKeyPath_New(FLSlice specifier, FLError *FL_NULLABLE outError)
Creates a new FLKeyPath object by compiling a path specifier string.
struct _FLKeyPath * FLKeyPath
A reference to a key path.
Definition: FLKeyPath.h:44
FLEECE_PUBLIC void FLKeyPath_Free(FLKeyPath FL_NULLABLE)
Frees a compiled FLKeyPath object.
NODISCARD FLEECE_PUBLIC FLStringResult FLKeyPath_ToString(FLKeyPath path)
Returns a path in string form.
NODISCARD FLEECE_PUBLIC FLValue FL_NULLABLE FLKeyPath_Eval(FLKeyPath, FLValue root)
Evaluates a compiled key-path for a given Fleece root object.
FLEECE_PUBLIC bool FLKeyPath_GetElement(FLKeyPath, size_t i, FLSlice *outDictKey, int32_t *outArrayIndex)
Returns an element of a path, either a key or an array index.
NODISCARD FLEECE_PUBLIC FLValue FL_NULLABLE FLKeyPath_EvalOnce(FLSlice specifier, FLValue root, FLError *FL_NULLABLE outError)
Evaluates a key-path from a specifier string, for a given Fleece root object.
FLEECE_PUBLIC bool FLKeyPath_Equals(FLKeyPath path1, FLKeyPath path2)
Equality test.
FLError
Error codes returned from some API calls.
Definition: FLBase.h:48
const struct _FLValue * FLValue
A reference to a value of any type.
Definition: FLBase.h:35
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:63