Attribute Macro ic_cdk_macros::init
source · #[init]
Expand description
Register the canister_init
entry point of a canister.
This attribute macro will export the function canister_init
in the canister module.
The function under this attribute must have no return value.
Each canister can only have one canister_init
entry point.
§Example
#[init]
fn init_function() {
// ...
}
The init function may accept an argument, if that argument is a CandidType
:
#[derive(Clone, Debug, CandidType, Deserialize)]
struct InitArg {
foo: u8,
}
#[init]
fn init_function(arg: InitArg) {
// ...
}
In this case, the argument will be read from ic0.msg_arg_data_size/copy
and passed to the
init function upon successful deserialization.
Refer to the canister_init
Specification for more information.