guile-goblins-rs/examples/goblins.rs

21 lines
775 B
Rust

use std::{sync::{atomic::{AtomicU8, Ordering}, Arc}, fs::canonicalize};
use guile_goblins_rs::start_scm;
use rust_guile::api::GuileApi;
use rust_guile::api::subroutines::register_subroutine;
use std::fs;
fn main() {
let counter = Box::leak(Box::new(AtomicU8::new(1)));
let to_run = |api: GuileApi| {
register_subroutine("idk", |a| {
println!("i'm a closure subroutine that's been called {} times.", counter.fetch_add(1, Ordering::Relaxed));
a
});
api.load_script("./goblins.scm");
api.load_script("./repl-init.scm");
};
start_scm(vec![], to_run);
// code after here is never reached because guile exits
println!("after run counter is {}", counter.load(std::sync::atomic::Ordering::Relaxed));
}