Preparing the next release.
[pyyaml/python3.git] / ext / _yaml.pxd
blobc7936c7055d167a2de5f51e33b26ffcb81c822c7
2 cdef extern from "_yaml.h":
4     void malloc(int l)
5     void memcpy(char *d, char *s, int l)
6     int strlen(char *s)
7     int PyString_CheckExact(object o)
8     int PyUnicode_CheckExact(object o)
9     char *PyString_AS_STRING(object o)
10     int PyString_GET_SIZE(object o)
11     object PyString_FromStringAndSize(char *v, int l)
12     object PyUnicode_DecodeUTF8(char *s, int s, char *e)
13     object PyUnicode_AsUTF8String(object o)
15     ctypedef enum:
16         SIZEOF_VOID_P
17     ctypedef enum yaml_encoding_t:
18         YAML_ANY_ENCODING
19         YAML_UTF8_ENCODING
20         YAML_UTF16LE_ENCODING
21         YAML_UTF16BE_ENCODING
22     ctypedef enum yaml_break_t:
23         YAML_ANY_BREAK
24         YAML_CR_BREAK
25         YAML_LN_BREAK
26         YAML_CRLN_BREAK
27     ctypedef enum yaml_error_type_t:
28         YAML_NO_ERROR
29         YAML_MEMORY_ERROR
30         YAML_READER_ERROR
31         YAML_SCANNER_ERROR
32         YAML_PARSER_ERROR
33         YAML_WRITER_ERROR
34         YAML_EMITTER_ERROR
35     ctypedef enum yaml_scalar_style_t:
36         YAML_ANY_SCALAR_STYLE
37         YAML_PLAIN_SCALAR_STYLE
38         YAML_SINGLE_QUOTED_SCALAR_STYLE
39         YAML_DOUBLE_QUOTED_SCALAR_STYLE
40         YAML_LITERAL_SCALAR_STYLE
41         YAML_FOLDED_SCALAR_STYLE
42     ctypedef enum yaml_sequence_style_t:
43         YAML_ANY_SEQUENCE_STYLE
44         YAML_BLOCK_SEQUENCE_STYLE
45         YAML_FLOW_SEQUENCE_STYLE
46     ctypedef enum yaml_mapping_style_t:
47         YAML_ANY_MAPPING_STYLE
48         YAML_BLOCK_MAPPING_STYLE
49         YAML_FLOW_MAPPING_STYLE
50     ctypedef enum yaml_token_type_t:
51         YAML_NO_TOKEN
52         YAML_STREAM_START_TOKEN
53         YAML_STREAM_END_TOKEN
54         YAML_VERSION_DIRECTIVE_TOKEN
55         YAML_TAG_DIRECTIVE_TOKEN
56         YAML_DOCUMENT_START_TOKEN
57         YAML_DOCUMENT_END_TOKEN
58         YAML_BLOCK_SEQUENCE_START_TOKEN
59         YAML_BLOCK_MAPPING_START_TOKEN
60         YAML_BLOCK_END_TOKEN
61         YAML_FLOW_SEQUENCE_START_TOKEN
62         YAML_FLOW_SEQUENCE_END_TOKEN
63         YAML_FLOW_MAPPING_START_TOKEN
64         YAML_FLOW_MAPPING_END_TOKEN
65         YAML_BLOCK_ENTRY_TOKEN
66         YAML_FLOW_ENTRY_TOKEN
67         YAML_KEY_TOKEN
68         YAML_VALUE_TOKEN
69         YAML_ALIAS_TOKEN
70         YAML_ANCHOR_TOKEN
71         YAML_TAG_TOKEN
72         YAML_SCALAR_TOKEN
73     ctypedef enum yaml_event_type_t:
74         YAML_NO_EVENT
75         YAML_STREAM_START_EVENT
76         YAML_STREAM_END_EVENT
77         YAML_DOCUMENT_START_EVENT
78         YAML_DOCUMENT_END_EVENT
79         YAML_ALIAS_EVENT
80         YAML_SCALAR_EVENT
81         YAML_SEQUENCE_START_EVENT
82         YAML_SEQUENCE_END_EVENT
83         YAML_MAPPING_START_EVENT
84         YAML_MAPPING_END_EVENT
86     ctypedef int yaml_read_handler_t(void *data, char *buffer,
87             int size, int *size_read) except 0
89     ctypedef int yaml_write_handler_t(void *data, char *buffer,
90             int size) except 0
92     ctypedef struct yaml_mark_t:
93         int index
94         int line
95         int column
96     ctypedef struct yaml_version_directive_t:
97         int major
98         int minor
99     ctypedef struct yaml_tag_directive_t:
100         char *handle
101         char *prefix
103     ctypedef struct _yaml_token_stream_start_data_t:
104         yaml_encoding_t encoding
105     ctypedef struct _yaml_token_alias_data_t:
106         char *value
107     ctypedef struct _yaml_token_anchor_data_t:
108         char *value
109     ctypedef struct _yaml_token_tag_data_t:
110         char *handle
111         char *suffix
112     ctypedef struct _yaml_token_scalar_data_t:
113         char *value
114         int length
115         yaml_scalar_style_t style
116     ctypedef struct _yaml_token_version_directive_data_t:
117         int major
118         int minor
119     ctypedef struct _yaml_token_tag_directive_data_t:
120         char *handle
121         char *prefix
122     ctypedef union _yaml_token_data_t:
123         _yaml_token_stream_start_data_t stream_start
124         _yaml_token_alias_data_t alias
125         _yaml_token_anchor_data_t anchor
126         _yaml_token_tag_data_t tag
127         _yaml_token_scalar_data_t scalar
128         _yaml_token_version_directive_data_t version_directive
129         _yaml_token_tag_directive_data_t tag_directive
130     ctypedef struct yaml_token_t:
131         yaml_token_type_t type
132         _yaml_token_data_t data
133         yaml_mark_t start_mark
134         yaml_mark_t end_mark
136     ctypedef struct _yaml_event_stream_start_data_t:
137         yaml_encoding_t encoding
138     ctypedef struct _yaml_event_document_start_data_tag_directives_t:
139         yaml_tag_directive_t *start
140         yaml_tag_directive_t *end
141     ctypedef struct _yaml_event_document_start_data_t:
142         yaml_version_directive_t *version_directive
143         _yaml_event_document_start_data_tag_directives_t tag_directives
144         int implicit
145     ctypedef struct _yaml_event_document_end_data_t:
146         int implicit
147     ctypedef struct _yaml_event_alias_data_t:
148         char *anchor
149     ctypedef struct _yaml_event_scalar_data_t:
150         char *anchor
151         char *tag
152         char *value
153         int length
154         int plain_implicit
155         int quoted_implicit
156         yaml_scalar_style_t style
157     ctypedef struct _yaml_event_sequence_start_data_t:
158         char *anchor
159         char *tag
160         int implicit
161         yaml_sequence_style_t style
162     ctypedef struct _yaml_event_mapping_start_data_t:
163         char *anchor
164         char *tag
165         int implicit
166         yaml_mapping_style_t style
167     ctypedef union _yaml_event_data_t:
168         _yaml_event_stream_start_data_t stream_start
169         _yaml_event_document_start_data_t document_start
170         _yaml_event_document_end_data_t document_end
171         _yaml_event_alias_data_t alias
172         _yaml_event_scalar_data_t scalar
173         _yaml_event_sequence_start_data_t sequence_start
174         _yaml_event_mapping_start_data_t mapping_start
175     ctypedef struct yaml_event_t:
176         yaml_event_type_t type
177         _yaml_event_data_t data
178         yaml_mark_t start_mark
179         yaml_mark_t end_mark
181     ctypedef struct yaml_parser_t:
182         yaml_error_type_t error
183         char *problem
184         int problem_offset
185         int problem_value
186         yaml_mark_t problem_mark
187         char *context
188         yaml_mark_t context_mark
190     ctypedef struct yaml_emitter_t:
191         yaml_error_type_t error
192         char *problem
194     char *yaml_get_version_string()
195     void yaml_get_version(int *major, int *minor, int *patch)
197     void yaml_token_delete(yaml_token_t *token)
199     int yaml_stream_start_event_initialize(yaml_event_t *event,
200             yaml_encoding_t encoding)
201     int yaml_stream_end_event_initialize(yaml_event_t *event)
202     int yaml_document_start_event_initialize(yaml_event_t *event,
203             yaml_version_directive_t *version_directive,
204             yaml_tag_directive_t *tag_directives_start,
205             yaml_tag_directive_t *tag_directives_end,
206             int implicit)
207     int yaml_document_end_event_initialize(yaml_event_t *event,
208             int implicit)
209     int yaml_alias_event_initialize(yaml_event_t *event, char *anchor)
210     int yaml_scalar_event_initialize(yaml_event_t *event,
211             char *anchor, char *tag, char *value, int length,
212             int plain_implicit, int quoted_implicit,
213             yaml_scalar_style_t style)
214     int yaml_sequence_start_event_initialize(yaml_event_t *event,
215             char *anchor, char *tag, int implicit, yaml_sequence_style_t style)
216     int yaml_sequence_end_event_initialize(yaml_event_t *event)
217     int yaml_mapping_start_event_initialize(yaml_event_t *event,
218             char *anchor, char *tag, int implicit, yaml_mapping_style_t style)
219     int yaml_mapping_end_event_initialize(yaml_event_t *event)
220     void yaml_event_delete(yaml_event_t *event)
222     int yaml_parser_initialize(yaml_parser_t *parser)
223     void yaml_parser_delete(yaml_parser_t *parser)
224     void yaml_parser_set_input_string(yaml_parser_t *parser,
225             char *input, int size)
226     void yaml_parser_set_input(yaml_parser_t *parser,
227             yaml_read_handler_t *handler, void *data)
228     void yaml_parser_set_encoding(yaml_parser_t *parser,
229             yaml_encoding_t encoding)
230     int yaml_parser_scan(yaml_parser_t *parser, yaml_token_t *token) except *
231     int yaml_parser_parse(yaml_parser_t *parser, yaml_event_t *event) except *
233     int yaml_emitter_initialize(yaml_emitter_t *emitter)
234     void yaml_emitter_delete(yaml_emitter_t *emitter)
235     void yaml_emitter_set_output_string(yaml_emitter_t *emitter,
236             char *output, int size, int *size_written)
237     void yaml_emitter_set_output(yaml_emitter_t *emitter,
238             yaml_write_handler_t *handler, void *data)
239     void yaml_emitter_set_encoding(yaml_emitter_t *emitter,
240             yaml_encoding_t encoding)
241     void yaml_emitter_set_canonical(yaml_emitter_t *emitter, int canonical)
242     void yaml_emitter_set_indent(yaml_emitter_t *emitter, int indent)
243     void yaml_emitter_set_width(yaml_emitter_t *emitter, int width)
244     void yaml_emitter_set_unicode(yaml_emitter_t *emitter, int unicode)
245     void yaml_emitter_set_break(yaml_emitter_t *emitter,
246             yaml_break_t line_break)
247     int yaml_emitter_emit(yaml_emitter_t *emitter, yaml_event_t *event) except *
248     int yaml_emitter_flush(yaml_emitter_t *emitter)