pub fn checkout<Find, E>(
    index: &mut State,
    dir: impl Into<PathBuf>,
    find: Find,
    files: &mut impl Progress,
    bytes: &mut impl Progress,
    should_interrupt: &AtomicBool,
    options: Options
) -> Result<Outcome, Error<E>>where
    Find: for<'a> FnMut(&oid, &'a mut Vec<u8, Global>) -> Result<BlobRef<'a>, E> + Send + Clone,
    E: Error + Send + Sync + 'static,
Expand description

Note that interruption still produce an Ok(…) value, so the caller should look at should_interrupt to communicate the outcome. dir is the directory into which to checkout the index. git_dir is the .git directory for reading additional per-repository configuration files.