diff --git a/src/ls.rs b/src/ls.rs index 90670da..acfe27e 100644 --- a/src/ls.rs +++ b/src/ls.rs @@ -1,9 +1,29 @@ //! Functions for iterating over the cache. +use anyhow::Result; use std::path::Path; use crate::index; /// Returns a synchronous iterator that lists all cache index entries. -pub fn list_sync>(cache: P) -> impl Iterator { +pub fn list_sync>(cache: P) -> impl Iterator> { index::ls(cache.as_ref()) } + +#[cfg(test)] +mod tests { + use super::*; + use tempfile; + + #[test] + fn test_list_sync() { + // check that the public interface to list elements can actually use the + // Iterator::Item + let tmp = tempfile::tempdir().unwrap(); + let dir = tmp.path().to_owned(); + + assert!(list_sync(dir) + .map(|x| Ok(x?.key)) + .collect::>>() + .is_err()) + } +}