1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*!
The [GameLisp](https://gamelisp.rs) scripting language.

For a guided tour of the Rust API, see Section 2 of the 
[Reference Manual](https://gamelisp.rs/reference/overview.html).
*/

pub use glsp_engine::*;

pub use glsp_proc_macros::*;

pub use glsp_stdlib::*;

#[cfg(feature = "compiler")]
pub use glsp_proc_macros2::*;

pub mod prelude {
	/*!
	The prelude.
	
	Due to a limitation in Rust's name lookup, the prelude currently imports any functions which
	share their name with a macro. For example, it imports both the macro [`arr!`](macro.arr.html)
	and the function [`glsp::arr`](fn.arr.html).
	
	This is unintentional, and it may change in the future. When using the prelude, macros can 
	be invoked without their prefix, but functions should still be invoked with their
	`glsp::` prefix.
	*/

	#[doc(no_inline)]
	pub use crate::{
		arr, backquote, bail, bail_at, ensure, ensure_at, epr, eprn, error, macro_no_op, 
		pr, prn, quote, str, sym, syms, tab, try_arr, try_backquote, try_tab,

		Arr, 
		Callable, CallableOps, Class, Coro, CoroState, 
		Deque, DequeAccess, DequeAccessRange, DequeOps, 
		EnvMode, Expander, Expansion,
		FromVal, 
		Gc, GcVal, GcVisitor, GError, GFn, GIter, GIterLen, GResult,
		Hashable, 
		IntoVal, Iterable, IterableOps,
		Num, 
		Obj,
		RClass, RClassBuilder, RData, Rest, RFn, RGc, RGlobal, RGlobalRef, 
		RGlobalRefMut, Root, RRoot, RRef, RRefMut, Runtime, RuntimeBuilder,
		Splay, Str, Sym,
		Tab, ToSym,
		Val,
	};

	#[cfg(feature = "compiler")]
	#[doc(no_inline)]
	pub use crate::{compile, eval};
}