Skip to main content

codegen_discover/
codegen_discover.rs

1// Requires a live GemStone/S stone.
2//
3// Expected output includes:
4//
5// discovered config:
6// discovered classes: 1
7
8use gemstone_rs::{codegen, Config, Session};
9
10fn main() -> codegen::Result<()> {
11    let mut session = Session::login(Config::from_env()?)?;
12    let class_ref = codegen::ClassRef::parse("Object").expect("Object is a valid class reference");
13    let output = std::env::temp_dir()
14        .join(format!("gemstone-rs-discovered-{}", std::process::id()))
15        .join("gemstone_wrappers.rs");
16
17    let config = codegen::discover(&mut session, output, &[class_ref])?;
18    println!("discovered config:\n{}", codegen::config_source(&config));
19    println!("discovered classes: {}", config.classes.len());
20    println!(
21        "first class method count: {}",
22        config
23            .classes
24            .first()
25            .map_or(0, |class| class.methods.len())
26    );
27
28    Ok(())
29}