extern crate serde; extern crate serde_json; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] struct Person { name: String, age: u8, } // Function hello_rust_cargo without manglng #[no_mangle] pub extern "C" fn hello_rust_cargo_main() { // Print hello world to stdout let john = Person { name: "John".to_string(), age: 30, }; let json_str = serde_json::to_string(&john).unwrap(); println!("{}", json_str); let jane = Person { name: "Jane".to_string(), age: 25, }; let json_str_jane = serde_json::to_string(&jane).unwrap(); println!("{}", json_str_jane); let json_data = r#" { "name": "Alice", "age": 28 }"#; let alice: Person = serde_json::from_str(json_data).unwrap(); println!("Deserialized: {} is {} years old", alice.name, alice.age); let pretty_json_str = serde_json::to_string_pretty(&alice).unwrap(); println!("Pretty JSON:\n{}", pretty_json_str); tokio::runtime::Builder::new_current_thread() .enable_all() .build() .unwrap() .block_on(async { println!("Hello world from tokio!"); }); loop { // Do nothing } }