28 namespace fleece {
struct alloc_slice; }
50 explicit operator bool() const noexcept
FLPURE {
return buf !=
nullptr;}
51 explicit operator std::string()
const {
return std::string((
char*)
buf,
size);}
68 explicit operator bool() const noexcept
FLPURE {
return buf !=
nullptr;}
69 explicit operator FLSlice ()
const {
return {buf, size};}
70 inline explicit operator std::string()
const;
84 friend struct fleece::alloc_slice;
100 #define kFLSliceNull ((FLSlice){NULL, 0})
111 return memcmp(a, b, size);
118 memcpy(dst, src, size);
127 FLSlice foo = { str, str ? strlen(str) : 0 };
134 #define FLSTR(STR) (FLSlice {("" STR), sizeof(("" STR))-1})
136 #define FLSTR(STR) ((FLSlice){("" STR), sizeof(("" STR))-1})
190 memcpy(&ret, &sr,
sizeof(ret));
213 FLSliceResult::operator std::string ()
const {
214 auto str = std::string((
char*)buf, size);
#define FL_NULLABLE
Definition: CompilerSupport.h:87
#define FLEECE_PUBLIC
Definition: CompilerSupport.h:254
#define FL_ASSUME_NONNULL_BEGIN
Definition: CompilerSupport.h:85
#define _usuallyTrue(VAL)
Definition: CompilerSupport.h:68
#define _usuallyFalse(VAL)
Definition: CompilerSupport.h:69
#define FLPURE
Definition: CompilerSupport.h:123
#define NODISCARD
Definition: CompilerSupport.h:59
#define FL_ASSUME_NONNULL_END
Definition: CompilerSupport.h:86
#define FLAPI
Definition: CompilerSupport.h:260
FLEECE_PUBLIC void _FLBuf_Release(const void *FL_NULLABLE)
static void FLSliceResult_Release(FLSliceResult s)
Decrements the ref-count of a FLSliceResult, freeing its memory if it reached zero.
Definition: FLSlice.h:183
FLEECE_PUBLIC void FL_WipeMemory(void *dst, size_t size)
Writes zeroes to size bytes of memory starting at dst.
FLEECE_PUBLIC void _FLBuf_Retain(const void *FL_NULLABLE)
FLEECE_PUBLIC FLSliceResult FLSliceResult_New(size_t)
Allocates an FLSliceResult of the given size, without initializing the buffer.
#define kFLSliceNull
A convenient constant denoting a null slice.
Definition: FLSlice.h:100
FLEECE_PUBLIC bool FLSlice_Equal(FLSlice a, FLSlice b) FLPURE
Equality test of two slices.
static void FLMemCpy(void *FL_NULLABLE dst, const void *FL_NULLABLE src, size_t size)
Exactly like memcmp, but safely handles the case where dst or src is NULL and size is 0 (as a no-op),...
Definition: FLSlice.h:116
static FLSliceResult FLSliceResult_Retain(FLSliceResult s)
Increments the ref-count of a FLSliceResult.
Definition: FLSlice.h:177
static FLSliceResult FLSliceResult_CreateWith(const void *FL_NULLABLE bytes, size_t size)
Allocates an FLSliceResult, copying size bytes starting at buf.
Definition: FLSlice.h:167
FLSliceResult FLStringResult
Definition: FLSlice.h:93
static FLSlice FLStr(const char *FL_NULLABLE str)
Returns a slice pointing to the contents of a C string.
Definition: FLSlice.h:126
FLSlice FLString
Definition: FLSlice.h:92
FLSlice FLHeapSlice
A heap-allocated, reference-counted slice.
Definition: FLSlice.h:87
static FLSlice FLSliceResult_AsSlice(FLSliceResult sr)
Type-casts a FLSliceResult to FLSlice, since C doesn't know it's a subclass.
Definition: FLSlice.h:188
static FLPURE int FLMemCmp(const void *FL_NULLABLE a, const void *FL_NULLABLE b, size_t size)
Exactly like memcmp, but safely handles the case where a or b is NULL and size is 0 (by returning 0),...
Definition: FLSlice.h:106
FLEECE_PUBLIC bool FLSlice_ToCString(FLSlice s, char *buffer, size_t capacity)
Copies a slice to a buffer, adding a trailing zero byte to make it a valid C string.
FLEECE_PUBLIC int FLSlice_Compare(FLSlice, FLSlice) FLPURE
Lexicographic comparison of two slices; basically like memcmp(), but taking into account differences ...
FLEECE_PUBLIC uint32_t FLSlice_Hash(FLSlice s) FLPURE
Computes a 32-bit hash of a slice's data, suitable for use in hash tables.
FLEECE_PUBLIC FLSliceResult FLSlice_Copy(FLSlice)
Allocates an FLSliceResult, copying the given slice.
A simple reference to a block of memory.
Definition: FLSlice.h:45
size_t size
Definition: FLSlice.h:47
const void *FL_NULLABLE buf
Definition: FLSlice.h:46
A heap-allocated block of memory returned from an API call.
Definition: FLSlice.h:63
const void *FL_NULLABLE buf
Definition: FLSlice.h:64
size_t size
Definition: FLSlice.h:65