Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

55 rindas
1.8 KiB

  1. // This file is part of Jiffy released under the MIT license.
  2. // See the LICENSE file for more information.
  3. #ifndef JIFFY_H
  4. #define JIFFY_H
  5. #include "erl_nif.h"
  6. #define REDUCTIONS 1000
  7. typedef struct {
  8. ERL_NIF_TERM atom_ok;
  9. ERL_NIF_TERM atom_error;
  10. ERL_NIF_TERM atom_null;
  11. ERL_NIF_TERM atom_true;
  12. ERL_NIF_TERM atom_false;
  13. ERL_NIF_TERM atom_bignum;
  14. ERL_NIF_TERM atom_bignum_e;
  15. ERL_NIF_TERM atom_bigdbl;
  16. ERL_NIF_TERM atom_partial;
  17. ERL_NIF_TERM atom_uescape;
  18. ERL_NIF_TERM atom_pretty;
  19. ERL_NIF_TERM atom_force_utf8;
  20. ERL_NIF_TERM atom_reductions;
  21. ERL_NIF_TERM ref_object;
  22. ERL_NIF_TERM ref_array;
  23. ErlNifResourceType *res_encoder;
  24. ErlNifResourceType *res_decoder;
  25. } jiffy_st;
  26. ERL_NIF_TERM make_atom(ErlNifEnv* env, const char* name);
  27. ERL_NIF_TERM make_ok(jiffy_st* st, ErlNifEnv* env, ERL_NIF_TERM data);
  28. ERL_NIF_TERM make_error(jiffy_st* st, ErlNifEnv* env, const char* error);
  29. int get_reductions(ErlNifEnv *env, ERL_NIF_TERM term, jiffy_st* st, size_t* val);
  30. int jiffy_consume_timeslice(ErlNifEnv *env, size_t reds, size_t cur, size_t* proc);
  31. ERL_NIF_TERM decode(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]);
  32. ERL_NIF_TERM encode(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]);
  33. void enc_destroy(ErlNifEnv* env, void* e);
  34. void dec_destroy(ErlNifEnv* env, void* d);
  35. int int_from_hex(const unsigned char* p);
  36. int int_to_hex(int val, char* p);
  37. int utf8_len(int c);
  38. int utf8_esc_len(int c);
  39. int utf8_validate(unsigned char* data, size_t size);
  40. int utf8_to_unicode(unsigned char* buf, size_t size);
  41. int unicode_to_utf8(int c, unsigned char* buf);
  42. int unicode_from_pair(int hi, int lo);
  43. int unicode_uescape(int c, char* buf);
  44. int double_to_shortest(char *buf, size_t size, size_t* len, double val);
  45. #endif // Included JIFFY_H