aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Venner <[email protected]>2021-03-16 03:42:11 +0000
committerWilliam Venner <[email protected]>2021-03-16 03:42:11 +0000
commit2af78fbabefec4bf254570ec8c2782ccc20b153a (patch)
treeadd513473708dc5198679b7261f55116f1eeaf26
parentMerge pull request #33 from WilliamVenner/ugc-stats (diff)
downloadsteamworks-rs-2af78fbabefec4bf254570ec8c2782ccc20b153a.tar.xz
steamworks-rs-2af78fbabefec4bf254570ec8c2782ccc20b153a.zip
Add ugc iter_maybe
-rw-r--r--src/ugc.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/ugc.rs b/src/ugc.rs
index d08b24d..bd8d935 100644
--- a/src/ugc.rs
+++ b/src/ugc.rs
@@ -844,8 +844,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()
@@ -886,6 +885,12 @@ impl<'a> QueryResults<'a> {
(0..self.returned_results())
.map(move |i| self.get(i).unwrap())
}
+
+ /// Returns an iterator that runs over all the fetched results, but doesn't panic if one of those results failed
+ pub fn iter_maybe<'b>(&'b self) -> impl Iterator<Item=Option<QueryResult>> + 'b {
+ (0..self.returned_results())
+ .map(move |i| self.get(i))
+ }
}
/// Query result