Skip to main content

quickstart/
quickstart.rs

1// Requires a live GemStone/S stone.
2//
3// Expected output includes:
4//
5// GemStone eval ok: SmallInt(7)
6// GemStoneRsQuickstart: hello from gemstone-rs quickstart
7
8use gemstone_rs::{Config, Oop, Session, Value};
9
10fn main() -> gemstone_rs::Result<()> {
11    let mut session = Session::login(Config::from_env()?)?;
12
13    let value = session.eval("3 + 4")?;
14    assert_eq!(value, Value::SmallInt(7));
15    println!("GemStone eval ok: {value:?}");
16
17    let key = "GemStoneRsQuickstart";
18    let text = session.new_string("hello from gemstone-rs quickstart")?;
19    session.global_put(key, text)?;
20
21    let stored = session.global_get(key)?;
22    println!("{key}: {}", session.fetch_string(stored)?);
23
24    session.global_put(key, Oop::NIL)?;
25    session.logout()?;
26    Ok(())
27}