pub(crate) fn from_shred<F>(
    shred: Shred,
    self_pubkey: Pubkey,
    other_payload: Vec<u8>,
    leader_schedule: Option<F>,
    wallclock: u64,
    max_size: usize
) -> Result<impl Iterator<Item = DuplicateShred>, Error>where
    F: FnOnce(Slot) -> Option<Pubkey>,