1pub use seq_core::arena;
10pub use seq_core::error;
11pub use seq_core::memory_stats;
12pub use seq_core::seqstring;
13pub use seq_core::son;
14pub use seq_core::stack;
15pub use seq_core::tagged_stack;
16pub use seq_core::value;
17
18pub mod args;
20pub mod arithmetic;
21pub mod channel;
22pub mod closures;
23pub mod combinators;
24pub mod cond;
25pub mod diagnostics;
26pub mod encoding;
27pub mod exit_code;
28pub mod file;
29pub mod float_ops;
30pub mod io;
31pub mod list_ops;
32pub mod map_ops;
33pub mod os;
34pub mod quotations;
35pub mod report;
36pub mod scheduler;
37pub mod serialize;
38pub mod signal;
39pub mod string_ops;
40pub mod tcp;
41pub mod tcp_test;
42pub mod terminal;
43pub mod test;
44pub mod time_ops;
45pub mod variant_ops;
46pub mod watchdog;
47pub mod weave;
48
49#[cfg(not(feature = "diagnostics"))]
50pub mod report_stub;
51
52#[cfg(feature = "crypto")]
54pub mod crypto;
55#[cfg(not(feature = "crypto"))]
56pub mod crypto_stub;
57
58#[cfg(feature = "http")]
59pub mod http_client;
60#[cfg(not(feature = "http"))]
61pub mod http_stub;
62
63#[cfg(feature = "regex")]
64pub mod regex;
65#[cfg(not(feature = "regex"))]
66pub mod regex_stub;
67
68#[cfg(feature = "compression")]
69pub mod compress;
70#[cfg(not(feature = "compression"))]
71pub mod compress_stub;
72
73pub use seq_core::{ChannelData, MapKey, Value, VariantData, WeaveChannelData, WeaveMessage};
75pub use seq_core::{
76 DISC_BOOL, DISC_CHANNEL, DISC_CLOSURE, DISC_FLOAT, DISC_INT, DISC_MAP, DISC_QUOTATION,
77 DISC_STRING, DISC_SYMBOL, DISC_VARIANT, DISC_WEAVECTX, Stack, alloc_stack, alloc_test_stack,
78 clone_stack, clone_stack_segment, clone_stack_value, clone_value, drop_op, drop_stack_value,
79 drop_top, dup, nip, over, peek, peek_sv, pick_op, pop, pop_sv, push, push_sv, push_value, roll,
80 rot, set_stack_base, stack_dump, stack_value_to_value, swap, tuck, two_dup,
81 value_to_stack_value,
82};
83
84pub use seq_core::{son_dump, son_dump_pretty};
86
87pub use seq_core::{
89 clear_error, clear_runtime_error, get_error, has_error, has_runtime_error, set_runtime_error,
90 take_error, take_runtime_error,
91};
92
93pub use serialize::{SerializeError, TypedMapKey, TypedValue, ValueSerialize};
95
96pub use arithmetic::{
98 patch_seq_add as add, patch_seq_divide as divide, patch_seq_eq as eq, patch_seq_gt as gt,
99 patch_seq_gte as gte, patch_seq_lt as lt, patch_seq_lte as lte, patch_seq_multiply as multiply,
100 patch_seq_neq as neq, patch_seq_push_bool as push_bool, patch_seq_push_int as push_int,
101 patch_seq_subtract as subtract,
102};
103
104pub use float_ops::{
106 patch_seq_f_add as f_add, patch_seq_f_divide as f_divide, patch_seq_f_eq as f_eq,
107 patch_seq_f_gt as f_gt, patch_seq_f_gte as f_gte, patch_seq_f_lt as f_lt,
108 patch_seq_f_lte as f_lte, patch_seq_f_multiply as f_multiply, patch_seq_f_neq as f_neq,
109 patch_seq_f_subtract as f_subtract, patch_seq_float_to_int as float_to_int,
110 patch_seq_float_to_string as float_to_string, patch_seq_int_to_float as int_to_float,
111 patch_seq_push_float as push_float,
112};
113
114pub use io::{
116 patch_seq_exit_op as exit_op, patch_seq_push_interned_symbol as push_interned_symbol,
117 patch_seq_push_string as push_string, patch_seq_push_symbol as push_symbol,
118 patch_seq_read_line as read_line, patch_seq_read_line_plus as read_line_plus,
119 patch_seq_read_n as read_n, patch_seq_string_to_symbol as string_to_symbol,
120 patch_seq_symbol_to_string as symbol_to_string, patch_seq_write_line as write_line,
121};
122
123pub use scheduler::{
125 patch_seq_maybe_yield as maybe_yield, patch_seq_scheduler_init as scheduler_init,
126 patch_seq_scheduler_run as scheduler_run, patch_seq_scheduler_shutdown as scheduler_shutdown,
127 patch_seq_spawn_strand as spawn_strand, patch_seq_strand_spawn as strand_spawn,
128 patch_seq_wait_all_strands as wait_all_strands, patch_seq_yield_strand as yield_strand,
129};
130
131pub use channel::{
134 patch_seq_chan_receive as receive, patch_seq_chan_send as send,
135 patch_seq_close_channel as close_channel, patch_seq_make_channel as make_channel,
136};
137
138pub use weave::{
140 patch_seq_resume as weave_resume, patch_seq_weave as weave_make,
141 patch_seq_weave_cancel as weave_cancel, patch_seq_yield as weave_yield,
142};
143
144pub use io::patch_seq_int_to_string as int_to_string;
146pub use string_ops::{
147 patch_seq_json_escape as json_escape, patch_seq_string_chomp as string_chomp,
148 patch_seq_string_concat as string_concat, patch_seq_string_contains as string_contains,
149 patch_seq_string_empty as string_empty, patch_seq_string_join as string_join,
150 patch_seq_string_length as string_length, patch_seq_string_split as string_split,
151 patch_seq_string_starts_with as string_starts_with, patch_seq_string_to_int as string_to_int,
152 patch_seq_string_to_lower as string_to_lower, patch_seq_string_to_upper as string_to_upper,
153 patch_seq_string_trim as string_trim,
154};
155
156pub use encoding::{
158 patch_seq_base64_decode as base64_decode, patch_seq_base64_encode as base64_encode,
159 patch_seq_base64url_decode as base64url_decode, patch_seq_base64url_encode as base64url_encode,
160 patch_seq_hex_decode as hex_decode, patch_seq_hex_encode as hex_encode,
161};
162
163#[cfg(feature = "crypto")]
165pub use crypto::{
166 patch_seq_constant_time_eq as constant_time_eq,
167 patch_seq_crypto_aes_gcm_decrypt as crypto_aes_gcm_decrypt,
168 patch_seq_crypto_aes_gcm_encrypt as crypto_aes_gcm_encrypt,
169 patch_seq_crypto_ed25519_keypair as crypto_ed25519_keypair,
170 patch_seq_crypto_ed25519_sign as crypto_ed25519_sign,
171 patch_seq_crypto_ed25519_verify as crypto_ed25519_verify,
172 patch_seq_crypto_pbkdf2_sha256 as crypto_pbkdf2_sha256, patch_seq_hmac_sha256 as hmac_sha256,
173 patch_seq_random_bytes as random_bytes, patch_seq_random_int as random_int,
174 patch_seq_sha256 as sha256, patch_seq_uuid4 as uuid4,
175};
176#[cfg(not(feature = "crypto"))]
177pub use crypto_stub::{
178 patch_seq_constant_time_eq as constant_time_eq,
179 patch_seq_crypto_aes_gcm_decrypt as crypto_aes_gcm_decrypt,
180 patch_seq_crypto_aes_gcm_encrypt as crypto_aes_gcm_encrypt,
181 patch_seq_crypto_ed25519_keypair as crypto_ed25519_keypair,
182 patch_seq_crypto_ed25519_sign as crypto_ed25519_sign,
183 patch_seq_crypto_ed25519_verify as crypto_ed25519_verify,
184 patch_seq_crypto_pbkdf2_sha256 as crypto_pbkdf2_sha256, patch_seq_hmac_sha256 as hmac_sha256,
185 patch_seq_random_bytes as random_bytes, patch_seq_random_int as random_int,
186 patch_seq_sha256 as sha256, patch_seq_uuid4 as uuid4,
187};
188
189#[cfg(feature = "regex")]
191pub use regex::{
192 patch_seq_regex_captures as regex_captures, patch_seq_regex_find as regex_find,
193 patch_seq_regex_find_all as regex_find_all, patch_seq_regex_match as regex_match,
194 patch_seq_regex_replace as regex_replace, patch_seq_regex_replace_all as regex_replace_all,
195 patch_seq_regex_split as regex_split, patch_seq_regex_valid as regex_valid,
196};
197#[cfg(not(feature = "regex"))]
198pub use regex_stub::{
199 patch_seq_regex_captures as regex_captures, patch_seq_regex_find as regex_find,
200 patch_seq_regex_find_all as regex_find_all, patch_seq_regex_match as regex_match,
201 patch_seq_regex_replace as regex_replace, patch_seq_regex_replace_all as regex_replace_all,
202 patch_seq_regex_split as regex_split, patch_seq_regex_valid as regex_valid,
203};
204
205#[cfg(feature = "compression")]
207pub use compress::{
208 patch_seq_compress_gunzip as compress_gunzip, patch_seq_compress_gzip as compress_gzip,
209 patch_seq_compress_gzip_level as compress_gzip_level,
210 patch_seq_compress_unzstd as compress_unzstd, patch_seq_compress_zstd as compress_zstd,
211 patch_seq_compress_zstd_level as compress_zstd_level,
212};
213#[cfg(not(feature = "compression"))]
214pub use compress_stub::{
215 patch_seq_compress_gunzip as compress_gunzip, patch_seq_compress_gzip as compress_gzip,
216 patch_seq_compress_gzip_level as compress_gzip_level,
217 patch_seq_compress_unzstd as compress_unzstd, patch_seq_compress_zstd as compress_zstd,
218 patch_seq_compress_zstd_level as compress_zstd_level,
219};
220
221pub use quotations::{
223 patch_seq_call as call, patch_seq_peek_is_quotation as peek_is_quotation,
224 patch_seq_peek_quotation_fn_ptr as peek_quotation_fn_ptr,
225 patch_seq_push_quotation as push_quotation, patch_seq_spawn as spawn,
226};
227
228pub use closures::{
230 patch_seq_create_env as create_env, patch_seq_env_get as env_get,
231 patch_seq_env_get_int as env_get_int, patch_seq_env_set as env_set,
232 patch_seq_make_closure as make_closure, patch_seq_push_closure as push_closure,
233};
234
235pub use combinators::{bi, dip, keep};
237
238pub use cond::patch_seq_cond as cond;
240
241pub use exit_code::{
243 patch_seq_get_exit_code as get_exit_code, patch_seq_set_exit_code as set_exit_code,
244};
245
246pub use tcp::{
248 patch_seq_tcp_accept as tcp_accept, patch_seq_tcp_close as tcp_close,
249 patch_seq_tcp_listen as tcp_listen, patch_seq_tcp_read as tcp_read,
250 patch_seq_tcp_write as tcp_write,
251};
252
253pub use os::{
255 patch_seq_current_dir as current_dir, patch_seq_exit as exit, patch_seq_getenv as getenv,
256 patch_seq_home_dir as home_dir, patch_seq_os_arch as os_arch, patch_seq_os_name as os_name,
257 patch_seq_path_exists as path_exists, patch_seq_path_filename as path_filename,
258 patch_seq_path_is_dir as path_is_dir, patch_seq_path_is_file as path_is_file,
259 patch_seq_path_join as path_join, patch_seq_path_parent as path_parent,
260};
261
262pub use variant_ops::{
264 patch_seq_make_variant_0 as make_variant_0, patch_seq_make_variant_1 as make_variant_1,
265 patch_seq_make_variant_2 as make_variant_2, patch_seq_make_variant_3 as make_variant_3,
266 patch_seq_make_variant_4 as make_variant_4, patch_seq_make_variant_5 as make_variant_5,
267 patch_seq_make_variant_6 as make_variant_6, patch_seq_make_variant_7 as make_variant_7,
268 patch_seq_make_variant_8 as make_variant_8, patch_seq_make_variant_9 as make_variant_9,
269 patch_seq_make_variant_10 as make_variant_10, patch_seq_make_variant_11 as make_variant_11,
270 patch_seq_make_variant_12 as make_variant_12, patch_seq_unpack_variant as unpack_variant,
271 patch_seq_variant_field_at as variant_field_at,
272 patch_seq_variant_field_count as variant_field_count, patch_seq_variant_tag as variant_tag,
273};
274
275pub use args::{
277 patch_seq_arg_at as arg_at, patch_seq_arg_count as arg_count, patch_seq_args_init as args_init,
278};
279
280pub use file::{
282 patch_seq_file_exists as file_exists,
283 patch_seq_file_for_each_line_plus as file_for_each_line_plus,
284 patch_seq_file_slurp as file_slurp,
285};
286
287pub use list_ops::{
289 patch_seq_list_each as list_each, patch_seq_list_empty as list_empty,
290 patch_seq_list_filter as list_filter, patch_seq_list_fold as list_fold,
291 patch_seq_list_get as list_get, patch_seq_list_length as list_length,
292 patch_seq_list_make as list_make, patch_seq_list_map as list_map,
293 patch_seq_list_push as list_push, patch_seq_list_reverse as list_reverse,
294 patch_seq_list_set as list_set,
295};
296
297pub use map_ops::{
299 patch_seq_make_map as make_map, patch_seq_map_each as map_each,
300 patch_seq_map_empty as map_empty, patch_seq_map_fold as map_fold, patch_seq_map_get as map_get,
301 patch_seq_map_has as map_has, patch_seq_map_keys as map_keys,
302 patch_seq_map_remove as map_remove, patch_seq_map_set as map_set,
303 patch_seq_map_size as map_size, patch_seq_map_values as map_values,
304};
305
306pub use test::{
308 patch_seq_test_assert as test_assert, patch_seq_test_assert_eq as test_assert_eq,
309 patch_seq_test_assert_eq_str as test_assert_eq_str,
310 patch_seq_test_assert_not as test_assert_not, patch_seq_test_fail as test_fail,
311 patch_seq_test_fail_count as test_fail_count, patch_seq_test_finish as test_finish,
312 patch_seq_test_has_failures as test_has_failures, patch_seq_test_init as test_init,
313 patch_seq_test_pass_count as test_pass_count,
314};
315
316pub use time_ops::{
318 patch_seq_time_nanos as time_nanos, patch_seq_time_now as time_now,
319 patch_seq_time_sleep_ms as time_sleep_ms,
320};
321
322pub use terminal::{
324 patch_seq_terminal_flush as terminal_flush, patch_seq_terminal_height as terminal_height,
325 patch_seq_terminal_raw_mode as terminal_raw_mode,
326 patch_seq_terminal_read_char as terminal_read_char,
327 patch_seq_terminal_read_char_nonblock as terminal_read_char_nonblock,
328 patch_seq_terminal_width as terminal_width,
329};
330
331#[cfg(feature = "http")]
333pub use http_client::{
334 patch_seq_http_delete as http_delete, patch_seq_http_get as http_get,
335 patch_seq_http_post as http_post, patch_seq_http_put as http_put,
336};
337#[cfg(not(feature = "http"))]
338pub use http_stub::{
339 patch_seq_http_delete as http_delete, patch_seq_http_get as http_get,
340 patch_seq_http_post as http_post, patch_seq_http_put as http_put,
341};