pub type Event = Event;
enum Event {
    Scheduled {
        when: u32,
        index: u32,
    },
    Canceled {
        when: u32,
        index: u32,
    },
    Dispatched {
        task: (u32, u32),
        id: Option<[u8; 32]>,
        result: Result<(), DispatchError>,
    },
    RetrySet {
        task: (u32, u32),
        id: Option<[u8; 32]>,
        period: u32,
        retries: u8,
    },
    RetryCancelled {
        task: (u32, u32),
        id: Option<[u8; 32]>,
    },
    CallUnavailable {
        task: (u32, u32),
        id: Option<[u8; 32]>,
    },
    PeriodicFailed {
        task: (u32, u32),
        id: Option<[u8; 32]>,
    },
    RetryFailed {
        task: (u32, u32),
        id: Option<[u8; 32]>,
    },
    PermanentlyOverweight {
        task: (u32, u32),
        id: Option<[u8; 32]>,
    },
}