diff --git a/README-pt_BR.md b/README-pt_BR.md index f2ee033c..824f156f 100644 --- a/README-pt_BR.md +++ b/README-pt_BR.md @@ -67,7 +67,7 @@ async fn main() { }; let veilid = veilid_core::api_startup_config(update_callback, config).await.unwrap(); - println!("Node ID: {}", veilid.config().unwrap().get().network.routing_table.node_id); + println!("Node ID: {}", veilid.get_node_id().unwrap()); veilid.attach().await.unwrap(); // Until CTRL+C is pressed, keep running tokio::signal::ctrl_c().await.unwrap(); diff --git a/README.md b/README.md index bede35a7..63bf1340 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ async fn main() { }; let veilid = veilid_core::api_startup_config(update_callback, config).await.unwrap(); - println!("Node ID: {}", veilid.config().unwrap().get().network.routing_table.node_id); + println!("Node ID: {}", veilid.get_node_id().unwrap()); veilid.attach().await.unwrap(); // Until CTRL+C is pressed, keep running tokio::signal::ctrl_c().await.unwrap(); diff --git a/veilid-core/src/tests/common/test_veilid_core.rs b/veilid-core/src/tests/common/test_veilid_core.rs index e54038d7..4434da38 100644 --- a/veilid-core/src/tests/common/test_veilid_core.rs +++ b/veilid-core/src/tests/common/test_veilid_core.rs @@ -192,6 +192,23 @@ pub async fn test_attach_detach_multiple() { } } +pub async fn test_get_node_id() { + trace!("test get node id"); + let (update_callback, config_callback) = setup_veilid_core(); + let api = api_startup(update_callback, config_callback) + .await + .expect("startup failed"); + api.attach().await.unwrap(); + sleep(5000).await; + assert_eq!( + api.get_node_id().unwrap(), + api.config().unwrap().get().network.routing_table.node_id + ); + api.detach().await.unwrap(); + sleep(2000).await; + api.shutdown().await; +} + pub async fn test_all() { test_startup_shutdown().await; test_startup_shutdown_from_config().await; @@ -199,4 +216,5 @@ pub async fn test_all() { test_startup_shutdown_multiple().await; test_startup_shutdown_from_config_multiple().await; test_attach_detach_multiple().await; + test_get_node_id().await; } diff --git a/veilid-core/src/veilid_api/api.rs b/veilid-core/src/veilid_api/api.rs index 5e1fb4bb..26d37891 100644 --- a/veilid-core/src/veilid_api/api.rs +++ b/veilid-core/src/veilid_api/api.rs @@ -136,6 +136,11 @@ impl VeilidAPI { .ok_or(VeilidAPIError::NotInitialized) } + /// Get the Node ID. + pub fn get_node_id(&self) -> VeilidAPIResult> { + Ok(self.config()?.get().network.routing_table.node_id.clone()) + } + //////////////////////////////////////////////////////////////// // Internal Accessors