diff options
author | Kornel <kornel@geekhood.net> | 2019-08-11 18:57:03 +0100 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2019-08-11 18:57:03 +0100 |
commit | 7cbfdf4b93324ffbcd14375d3cd5d3f7d64b1bbf (patch) | |
tree | 6bbaa82da4264a88d0f29667418102a80a539e89 /crate_db/src/lib_crate_db.rs | |
parent | fa7daaa77da2e08590e5209b88f5b8bb091cbb90 (diff) |
Reuse versions from DB
Diffstat (limited to 'crate_db/src/lib_crate_db.rs')
-rw-r--r-- | crate_db/src/lib_crate_db.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crate_db/src/lib_crate_db.rs b/crate_db/src/lib_crate_db.rs index d53ad00..34b2830 100644 --- a/crate_db/src/lib_crate_db.rs +++ b/crate_db/src/lib_crate_db.rs @@ -206,6 +206,16 @@ impl CrateDb { }) } + pub fn crate_versions(&self, origin: &Origin) -> FResult<Vec<(String, u32)>> { + self.with_connection("crate_versions", |conn| { + let mut q = conn.prepare("SELECT v.version, v.created FROM crates c JOIN crate_versions v ON v.crate_id = c.id WHERE c.origin = ?1")?; + let res = q.query_map(&[&origin.to_str()][..], |row| { + Ok((row.get(0)?, row.get(1)?)) + })?; + Ok(res.collect::<Result<Vec<(String, u32)>>>()?) + }) + } + /// Add data of the latest version of a crate to the index /// Score is a ranking of a crate (0 = bad, 1 = great) pub fn index_latest(&self, c: CrateVersionData) -> FResult<()> { |