pub fn create_plan<VM: VMBinding>(
plan: PlanSelector,
args: CreateGeneralPlanArgs<'_, VM>,
) -> Box<dyn Plan<VM = VM>>Expand description
Create a plan and the spaces for the plan.
It is very important that in the constructor of each plan (including the constructor of each space),
sft and side metadata is not available for access. If a plan or a space needs to initialize sft or side metadata
in its constructor, it needs to postpone the initialization to Plan::initialize_sft, Plan::initialize_side_metadata,
Space::initialize_sft or Space::initialize_side_metadata.
If a plan or a space tries to access sft or side metadata in its constructor, it may cause undefined behavior.