Skip to main content

platform_minimal/
platform_minimal.rs

1use std::env;
2
3use eos_rs::{initialize, shutdown, InitializeOptions, Platform, PlatformOptions};
4
5fn required_env(name: &str) -> Result<String, String> {
6    env::var(name).map_err(|_| format!("missing required environment variable: {name}"))
7}
8
9fn main() -> Result<(), Box<dyn std::error::Error>> {
10    initialize(InitializeOptions {
11        product_name: "eos-rs-example".to_string(),
12        product_version: "0.1.0".to_string(),
13    })?;
14
15    let platform = Platform::create(PlatformOptions {
16        product_id: required_env("EOS_PRODUCT_ID")?,
17        sandbox_id: required_env("EOS_SANDBOX_ID")?,
18        deployment_id: required_env("EOS_DEPLOYMENT_ID")?,
19        client_id: required_env("EOS_CLIENT_ID")?,
20        client_secret: required_env("EOS_CLIENT_SECRET")?,
21        is_server: false,
22        encryption_key: None,
23        override_country_code: None,
24        override_locale_code: None,
25    })?;
26
27    // In a real application, call this from your main loop.
28    platform.tick();
29
30    // Optional: access low-level handles for APIs not yet wrapped.
31    let _auth = platform.auth().raw_handle();
32    let _connect = platform.connect().raw_handle();
33    let _lobby = platform.lobby().raw_handle();
34    let _p2p = platform.p2p().raw_handle();
35
36    drop(platform);
37    shutdown()?;
38    println!("eos-rs minimal flow completed.");
39    Ok(())
40}
41