--- CBOR-XS/XS.xs 2020/11/29 21:32:01 1.66 +++ CBOR-XS/XS.xs 2020/11/29 21:35:06 1.67 @@ -107,10 +107,11 @@ AS_CBOR = 0, AS_BYTES = 1, AS_TEXT = 2, - AS_FLOAT16 = 3, - AS_FLOAT32 = 4, - AS_FLOAT64 = 5, - // possibly future enhancements: float, integer + AS_INT = 3, + AS_FLOAT16 = 4, + AS_FLOAT32 = 5, + AS_FLOAT64 = 6, + // possibly future enhancements: (generic) float, (generic) string }; #define F_SHRINK 0x00000001UL @@ -289,7 +290,7 @@ } // encodes a perl value into a CBOR integer -ecb_inline +ecb_inline void encode_int (enc_t *enc, SV *sv) { if (SvIsUV (sv)) @@ -450,6 +451,7 @@ } break; + case AS_INT: encode_int (enc, sv); break; case AS_FLOAT16: encode_float16 (enc, SvNV (sv)); break; case AS_FLOAT32: encode_float32 (enc, SvNV (sv)); break; case AS_FLOAT64: encode_float64 (enc, SvNV (sv)); break; @@ -716,7 +718,7 @@ else if (SvNOKp (sv)) encode_nv (enc, sv); else if (SvIOKp (sv)) - encode_int (e,v sv); + encode_int (enc, sv); else if (SvROK (sv)) encode_rv (enc, SvRV (sv)); else if (!SvOK (sv))