… | |
… | |
64 | |
64 | |
65 | package CBOR::XS; |
65 | package CBOR::XS; |
66 | |
66 | |
67 | use common::sense; |
67 | use common::sense; |
68 | |
68 | |
69 | our $VERSION = 1.1; |
69 | our $VERSION = 1.11; |
70 | our @ISA = qw(Exporter); |
70 | our @ISA = qw(Exporter); |
71 | |
71 | |
72 | our @EXPORT = qw(encode_cbor decode_cbor); |
72 | our @EXPORT = qw(encode_cbor decode_cbor); |
73 | |
73 | |
74 | use Exporter; |
74 | use Exporter; |
… | |
… | |
241 | If C<$enable> is false (the default), then C<encode> will encode strings |
241 | If C<$enable> is false (the default), then C<encode> will encode strings |
242 | the standard CBOR way. |
242 | the standard CBOR way. |
243 | |
243 | |
244 | This option does not affect C<decode> in any way - string references will |
244 | This option does not affect C<decode> in any way - string references will |
245 | always be decoded properly if present. |
245 | always be decoded properly if present. |
|
|
246 | |
|
|
247 | =item $cbor = $cbor->validate_utf8 ([$enable]) |
|
|
248 | |
|
|
249 | =item $enabled = $cbor->get_validate_utf8 |
|
|
250 | |
|
|
251 | If C<$enable> is true (or missing), then C<decode> will validate that |
|
|
252 | elements (text strings) containing UTF-8 data in fact contain valid UTF-8 |
|
|
253 | data (instead of blindly accepting it). This validation obviously takes |
|
|
254 | extra time during decoding. |
|
|
255 | |
|
|
256 | The concept of "valid UTF-8" used is perl's concept, which is a superset |
|
|
257 | of the official UTF-8. |
|
|
258 | |
|
|
259 | If C<$enable> is false (the default), then C<decode> will blindly accept |
|
|
260 | UTF-8 data, marking them as valid UTF-8 in the resulting data structure |
|
|
261 | regardless of whether thats true or not. |
|
|
262 | |
|
|
263 | Perl isn't too happy about corrupted UTF-8 in strings, but should |
|
|
264 | generally not crash or do similarly evil things. Extensions might be not |
|
|
265 | so forgiving, so it's recommended to turn on this setting if you receive |
|
|
266 | untrusted CBOR. |
|
|
267 | |
|
|
268 | This option does not affect C<encode> in any way - strings that are |
|
|
269 | supposedly valid UTF-8 will simply be dumped into the resulting CBOR |
|
|
270 | string without checking whether that is, in fact, true or not. |
246 | |
271 | |
247 | =item $cbor = $cbor->filter ([$cb->($tag, $value)]) |
272 | =item $cbor = $cbor->filter ([$cb->($tag, $value)]) |
248 | |
273 | |
249 | =item $cb_or_undef = $cbor->get_filter |
274 | =item $cb_or_undef = $cbor->get_filter |
250 | |
275 | |