summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/rb-fsevent-0.11.2/ext/fsevent_watch/TSICTString.h
blob: daf085c32f54717bfa4cfb8747a917f84c5819b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
//  TSICTString.h
//  TSITString
//
//  Created by Travis Tilley on 9/27/11.
//

#ifndef TSICTString_H
#define TSICTString_H

#include <CoreFoundation/CoreFoundation.h>


typedef enum {
    kTSITStringTagString   = 0,
    kTSITStringTagNumber   = 1,
    kTSITStringTagFloat    = 2,
    kTSITStringTagBool     = 3,
    kTSITStringTagNull     = 4,
    kTSITStringTagDict     = 5,
    kTSITStringTagList     = 6,
    kTSITStringTagInvalid  = 7,
} TSITStringTag;

extern const char* const TNetstringTypes;
extern const char* const OTNetstringTypes;
extern const UInt8 TNetstringSeparator;

typedef enum {
    kTSITStringFormatDefault        = 0,
    kTSITStringFormatOTNetstring    = 1,
    kTSITStringFormatTNetstring     = 2,
} TSITStringFormat;

extern TSITStringFormat TSITStringDefaultFormat;

typedef struct TSITStringIntermediate {
    CFDataRef           data;
    char*               length;
    TSITStringTag       type;
    TSITStringFormat    format;
} TStringIRep;

typedef struct {
    CFMutableDataRef    buffer;
    TSITStringFormat    format;
} TStringCollectionCallbackContext;


void Init_TSICTString(void);

void TSICTStringSetDefaultFormat(TSITStringFormat format);
TSITStringFormat TSICTStringGetDefaultFormat(void);

void TSICTStringDestroy(TStringIRep* rep);

CFDataRef TSICTStringCreateRenderedData(TStringIRep* rep);
CFDataRef TSICTStringCreateRenderedDataFromObjectWithFormat(CFTypeRef object, TSITStringFormat format);

CFStringRef TSICTStringCreateRenderedString(TStringIRep* rep);
CFStringRef TSICTStringCreateRenderedStringFromObjectWithFormat(CFTypeRef object, TSITStringFormat format);

TStringIRep* TSICTStringCreateWithObjectAndFormat(CFTypeRef object, TSITStringFormat format);
TStringIRep* TSICTStringCreateWithStringAndFormat(CFStringRef string, TSITStringFormat format);
TStringIRep* TSICTStringCreateWithNumberAndFormat(CFNumberRef number, TSITStringFormat format);
TStringIRep* TSICTStringCreateTrueWithFormat(TSITStringFormat format);
TStringIRep* TSICTStringCreateFalseWithFormat(TSITStringFormat format);
TStringIRep* TSICTStringCreateNullWithFormat(TSITStringFormat format);
TStringIRep* TSICTStringCreateInvalidWithFormat(TSITStringFormat format);
TStringIRep* TSICTStringCreateWithArrayAndFormat(CFArrayRef array, TSITStringFormat format);
TStringIRep* TSICTStringCreateWithDictionaryAndFormat(CFDictionaryRef dictionary, TSITStringFormat format);


#endif