You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: loader.rs
    path of file: ./repos/CYFS/src/tools/zone-stack/src
    
    the code of the file until where you have to start completion: use cyfs_base::*;
use cyfs_stack_loader::CyfsServiceLoader;
use cyfs_util::{DeviceInfo, LOCAL_DEVICE_MANAGER};
use zone_simulator::{CyfsStackInsConfig, TestLoader, TestStack, TestZone};

use crate::profile::*;

pub struct Loader {}

impl Loader {
    pub async fn load(stack_config: CyfsStackInsConfig) -> BuckyResult<()> {
        // 首先加载配置
        let pr
    
    async fn load_device_info_from_profile(zone: &ZoneData) -> BuckyResult<DeviceInfo> {
        info!("will use zone data: {:?}", zone);

        // let name = format!("zone-satck-{}", zone.zone_index);

        // 必须加载两个zone的所有设备，添加到协议栈的known_devices，否则因为没上链会导致查找失败
        let (user1, user2) = TestLoader::load_users(&zone.mnemonic, true, false).await;

        let user;
        if zone.zone_index == 0 {
            user = user1;
        } else if zone.zone_index == 1 {
            user = user2;
        } else {
            unreachable!();
        }

        let info = if zone.device_type == "ood" {
            user.ood
        } else {
            if zone.device_index == 0 {
                user.device1
            } else if zone.device_index == 1 {
                user.device2
            } else {
                unreachable!();
            }
        };

        Ok(info)
    }