|
|
- // This file is part of Jiffy released under the MIT license.
- // See the LICENSE file for more information.
-
- #ifndef TERMSTACK_H
- #define TERMSTACK_H
-
- #include "erl_nif.h"
-
- #define SMALL_TERMSTACK_SIZE 16
-
- typedef struct {
- ERL_NIF_TERM* elements;
- size_t size;
- size_t top;
-
- ERL_NIF_TERM __default_elements[SMALL_TERMSTACK_SIZE];
- } TermStack;
-
-
- ERL_NIF_TERM termstack_save(ErlNifEnv* env, TermStack* stack);
- int termstack_restore(ErlNifEnv* env, ERL_NIF_TERM from, TermStack* stack);
- void termstack_destroy(TermStack* stack);
-
- void termstack_push(TermStack* stack, ERL_NIF_TERM term);
- ERL_NIF_TERM termstack_pop(TermStack* stack);
- int termstack_is_empty(TermStack* stack);
-
- #endif
|