pub type Call = Call;
enum Call {
    schedule {
        when: u32,
        maybe_periodic: Option<(u32, u32)>,
        priority: u8,
        call: Box<RuntimeCall>,
    },
    cancel {
        when: u32,
        index: u32,
    },
    schedule_named {
        id: [u8; 32],
        when: u32,
        maybe_periodic: Option<(u32, u32)>,
        priority: u8,
        call: Box<RuntimeCall>,
    },
    cancel_named {
        id: [u8; 32],
    },
    schedule_after {
        after: u32,
        maybe_periodic: Option<(u32, u32)>,
        priority: u8,
        call: Box<RuntimeCall>,
    },
    schedule_named_after {
        id: [u8; 32],
        after: u32,
        maybe_periodic: Option<(u32, u32)>,
        priority: u8,
        call: Box<RuntimeCall>,
    },
    set_retry {
        task: (u32, u32),
        retries: u8,
        period: u32,
    },
    set_retry_named {
        id: [u8; 32],
        retries: u8,
        period: u32,
    },
    cancel_retry {
        task: (u32, u32),
    },
    cancel_retry_named {
        id: [u8; 32],
    },
}