aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Collins <[email protected]>2021-03-29 19:02:03 +0100
committerGitHub <[email protected]>2021-03-29 19:02:03 +0100
commitdde37d96208e0b0a970e9680597bd87f3747e63b (patch)
tree947de913cbae0b06d2c7dc2d55ca73a785ccfa63
parentMerge pull request #36 from WilliamVenner/req_user_info_return (diff)
parentRemove iter_maybe and just don't unwrap in iter() (diff)
downloadsteamworks-rs-dde37d96208e0b0a970e9680597bd87f3747e63b.tar.xz
steamworks-rs-dde37d96208e0b0a970e9680597bd87f3747e63b.zip
Merge pull request #35 from WilliamVenner/ugc_iter_maybe
Add ugc::QueryResults::iter_maybe
-rw-r--r--src/ugc.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/ugc.rs b/src/ugc.rs
index f59da93..e63bbc9 100644
--- a/src/ugc.rs
+++ b/src/ugc.rs
@@ -804,7 +804,7 @@ impl <Manager> UserListQuery<Manager> {
}
self.fetch(move |res|
- cb(res.map(|qr| qr.iter().map(|v| PublishedFileId(v.published_file_id.0)).collect::<Vec<_>>())))
+ cb(res.map(|qr| qr.iter().filter_map(|v| v.map(|v| PublishedFileId(v.published_file_id.0))).collect::<Vec<_>>())))
}
}
@@ -1144,8 +1144,7 @@ impl<'a> QueryResults<'a> {
let ok = sys::SteamAPI_ISteamUGC_GetQueryUGCResult(self.ugc, self.handle, index, &mut raw_details);
debug_assert!(ok);
- // TODO: is this always true? we don't get this from an async call...
- debug_assert!(raw_details.m_eResult == sys::EResult::k_EResultOK);
+ if raw_details.m_eResult != sys::EResult::k_EResultOK { return None }
let tags = CStr::from_ptr(raw_details.m_rgchTags.as_ptr())
.to_string_lossy()
@@ -1182,9 +1181,9 @@ impl<'a> QueryResults<'a> {
}
/// Returns an iterator that runs over all the fetched results
- pub fn iter<'b>(&'b self) -> impl Iterator<Item=QueryResult> + 'b {
+ pub fn iter<'b>(&'b self) -> impl Iterator<Item=Option<QueryResult>> + 'b {
(0..self.returned_results())
- .map(move |i| self.get(i).unwrap())
+ .map(move |i| self.get(i))
}
}