tinyscript/
lib.rs

1// Copyright © 2025 Stephan Kunz
2#![no_std]
3#![doc = include_str!("../README.md")]
4
5#[cfg(doctest)]
6doc_comment::doctest!("../README.md");
7
8#[doc(hidden)]
9extern crate alloc;
10
11pub mod compilation;
12pub mod environment;
13pub mod error;
14pub mod execution;
15pub mod runtime;
16
17// flatten
18pub use environment::DefaultEnvironment;
19pub use error::{Error, Result};
20pub use execution::Chunk;
21pub use runtime::{Runtime, SharedRuntime};
22
23// reexport
24pub use tinyscript_derive::ScriptEnum;
25
26// region:		--- modules
27use alloc::{sync::Arc, vec::Vec};
28// endregion:	--- modules
29
30// region		--- types
31/// An immutable thread safe `String` type.
32/// see: [Logan Smith](https://www.youtube.com/watch?v=A4cKi7PTJSs).
33pub type ConstString = Arc<str>;
34// endregion:   --- types
35
36// region		--- ScriptEnum
37/// The trait for script enums.
38pub trait ScriptEnum {
39	/// Function to get key-value tuples for registering.
40	fn key_value_tuples<'a>() -> Vec<(&'a str, i8)>;
41}
42// endregion:   --- ScriptEnum