Skip to main content

canic_core/api/
metadata.rs

1//! Module: api::metadata
2//!
3//! Responsibility: public Canic metadata facade for endpoint callers.
4//! Does not own: package metadata generation or endpoint macro emission.
5//! Boundary: builds metadata DTOs from package and canister version inputs.
6
7use crate::dto::metadata::CanicMetadataResponse;
8
9///
10/// CanicMetadataApi
11///
12/// Thin endpoint-facing facade for Canic metadata responses.
13///
14
15pub struct CanicMetadataApi;
16
17impl CanicMetadataApi {
18    /// Return metadata for the canister crate that exports the endpoint.
19    #[must_use]
20    pub fn metadata_for(
21        package_name: &str,
22        package_version: &str,
23        package_description: &str,
24        canic_version: &str,
25        canister_version: u64,
26    ) -> CanicMetadataResponse {
27        CanicMetadataResponse {
28            package_name: package_name.to_string(),
29            package_version: package_version.to_string(),
30            package_description: package_description.to_string(),
31            canic_version: canic_version.to_string(),
32            canister_version,
33        }
34    }
35}