Skip to main content

canic_core/api/
standards.rs

1use crate::dto::standards::CanicStandardsResponse;
2
3const CANISTER_NAME: &str = env!("CARGO_PKG_NAME");
4const CANISTER_VERSION: &str = env!("CARGO_PKG_VERSION");
5const CANISTER_DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
6
7///
8/// CanicStandardsApi
9///
10
11pub struct CanicStandardsApi;
12
13impl CanicStandardsApi {
14    /// Return standards metadata for the core crate fallback path.
15    #[must_use]
16    pub fn metadata() -> CanicStandardsResponse {
17        Self::metadata_for(CANISTER_NAME, CANISTER_VERSION, CANISTER_DESCRIPTION)
18    }
19
20    /// Return standards metadata for the canister crate that exports the endpoint.
21    #[must_use]
22    pub fn metadata_for(name: &str, version: &str, description: &str) -> CanicStandardsResponse {
23        CanicStandardsResponse {
24            name: name.to_string(),
25            version: version.to_string(),
26            description: description.to_string(),
27        }
28    }
29}