canic-cdk 0.43.2

Canic — a canister orchestration and management toolkit for the Internet Computer
Documentation
use candid::Principal;

fn validate_principal(label: &str, text: &str) {
    if let Err(err) = Principal::from_text(text) {
        panic!("Invalid principal literal {label}: {text} ({err})");
    }
}

macro_rules! static_canisters {
    ($($name:ident = $id:expr;)+) => {{
        $(validate_principal(stringify!($name), $id);)+
    }};
}

fn main() {
    // Re-run this build script if the build-time network changes.
    // This ensures downstream code sees the correct value via env!/option_env!.
    println!("cargo:rerun-if-env-changed=ICP_ENVIRONMENT");
    println!("cargo:rerun-if-changed=src/env/ck.inc.rs");

    // Share the same principal data with build-time validation.
    include!("src/env/ck.inc.rs");
}