diff options
| author | Matthew Collins <[email protected]> | 2021-03-29 19:02:03 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-03-29 19:02:03 +0100 |
| commit | dde37d96208e0b0a970e9680597bd87f3747e63b (patch) | |
| tree | 947de913cbae0b06d2c7dc2d55ca73a785ccfa63 | |
| parent | Merge pull request #36 from WilliamVenner/req_user_info_return (diff) | |
| parent | Remove iter_maybe and just don't unwrap in iter() (diff) | |
| download | steamworks-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.rs | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -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)) } } |