intuicio_frontend_simpleton/library/
console.rs1use std::io::Write;
2
3use crate::{Reference, Text};
4use intuicio_core::registry::Registry;
5use intuicio_derive::intuicio_function;
6
7#[intuicio_function(module_name = "console")]
8pub fn log(text: Reference) -> Reference {
9 print!("{}", text.read::<Text>().unwrap().as_str());
10 Reference::null()
11}
12
13#[intuicio_function(module_name = "console")]
14pub fn log_line(text: Reference) -> Reference {
15 println!("{}", text.read::<Text>().unwrap().as_str());
16 Reference::null()
17}
18
19#[intuicio_function(module_name = "console")]
20pub fn error(text: Reference) -> Reference {
21 eprint!("{}", text.read::<Text>().unwrap().as_str());
22 Reference::null()
23}
24
25#[intuicio_function(module_name = "console")]
26pub fn error_line(text: Reference) -> Reference {
27 eprintln!("{}", text.read::<Text>().unwrap().as_str());
28 Reference::null()
29}
30
31#[intuicio_function(module_name = "console", use_registry)]
32pub fn read_line(registry: &Registry) -> Reference {
33 let mut result = String::new();
34 std::io::stdout().flush().unwrap();
35 std::io::stdin().read_line(&mut result).unwrap();
36 Reference::new_text(result, registry)
37}
38
39pub fn install(registry: &mut Registry) {
40 registry.add_function(log::define_function(registry));
41 registry.add_function(log_line::define_function(registry));
42 registry.add_function(error::define_function(registry));
43 registry.add_function(error_line::define_function(registry));
44 registry.add_function(read_line::define_function(registry));
45}