pub fn recalculate_occultation_general<RD, LD, VF, LF, RF>(
gen: &mut UniqueGenGen<'_>,
gplayers: &DenseSlotMap<PlayerId, GPlayer>,
gpieces: &mut GPieces,
goccults: &mut GOccults,
ipieces: &IPieces,
ioccults: &IOccults,
to_recalculate: &mut ToRecalculate,
piece: PieceId,
ret_vanilla: VF,
log_invisible: LD,
log_callback: LF,
ret_callback: RF
) -> Result<RD, InternalError> where
RD: Debug,
LD: Debug,
VF: FnOnce() -> RD,
LF: for<'_> FnOnce(Option<Html>, Option<Html>, &Html) -> LD,
RF: FnOnce(SecondaryMap<PlayerId, PieceUpdateOp<(), ()>>, LD) -> RD,