Skip to main content

canic_core/api/lifecycle/
nonroot.rs

1use crate::{
2    config::schema::ConfigModel,
3    dto::{abi::v1::CanisterInitPayload, env::EnvBootstrapArgs},
4    ids::CanisterRole,
5    lifecycle,
6};
7
8///
9/// LifecycleApi
10///
11
12pub struct LifecycleApi;
13
14impl LifecycleApi {
15    pub fn init_nonroot_canister_before_bootstrap(
16        role: CanisterRole,
17        payload: CanisterInitPayload,
18        application_init_args: Option<Vec<u8>>,
19        config: ConfigModel,
20        config_source: &str,
21        config_path: &str,
22    ) {
23        lifecycle::init::nonroot::init_nonroot_canister_before_bootstrap(
24            role,
25            payload,
26            application_init_args,
27            config,
28            config_source,
29            config_path,
30        );
31    }
32
33    pub fn schedule_init_nonroot_bootstrap() {
34        lifecycle::init::nonroot::schedule_init_nonroot_bootstrap();
35    }
36
37    pub fn init_local_nonroot_canister_before_bootstrap(
38        role: CanisterRole,
39        env: EnvBootstrapArgs,
40        config: ConfigModel,
41        config_source: &str,
42        config_path: &str,
43    ) {
44        lifecycle::init::nonroot::init_local_nonroot_canister_before_bootstrap(
45            role,
46            env,
47            config,
48            config_source,
49            config_path,
50        );
51    }
52
53    #[must_use]
54    pub fn post_upgrade_nonroot_canister_before_bootstrap(
55        role: CanisterRole,
56        config: ConfigModel,
57        config_source: &str,
58        config_path: &str,
59    ) -> bool {
60        lifecycle::upgrade::nonroot::post_upgrade_nonroot_canister_before_bootstrap(
61            role,
62            config,
63            config_source,
64            config_path,
65        )
66    }
67
68    pub fn schedule_post_upgrade_nonroot_bootstrap() {
69        lifecycle::upgrade::nonroot::schedule_post_upgrade_nonroot_bootstrap();
70    }
71
72    #[must_use]
73    pub fn post_upgrade_local_nonroot_canister_before_bootstrap(
74        role: CanisterRole,
75        config: ConfigModel,
76        config_source: &str,
77        config_path: &str,
78    ) -> bool {
79        lifecycle::upgrade::nonroot::post_upgrade_local_nonroot_canister_before_bootstrap(
80            role,
81            config,
82            config_source,
83            config_path,
84        )
85    }
86}