From 2af78fbabefec4bf254570ec8c2782ccc20b153a Mon Sep 17 00:00:00 2001 From: William Venner Date: Tue, 16 Mar 2021 03:42:11 +0000 Subject: Add ugc iter_maybe --- src/ugc.rs | 9 +++++++-- 1 file 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> + 'b { + (0..self.returned_results()) + .map(move |i| self.get(i)) + } } /// Query result -- cgit v1.2.3 From d42f9982854978e671b80a8c05a91f1e86bcef8e Mon Sep 17 00:00:00 2001 From: William Venner Date: Fri, 26 Mar 2021 01:02:49 +0000 Subject: Remove iter_maybe and just don't unwrap in iter() --- src/ugc.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/ugc.rs b/src/ugc.rs index bd8d935..4eaa534 100644 --- a/src/ugc.rs +++ b/src/ugc.rs @@ -759,7 +759,7 @@ impl UserListQuery { } self.fetch(move |res| - cb(res.map(|qr| qr.iter().map(|v| PublishedFileId(v.published_file_id.0)).collect::>()))) + cb(res.map(|qr| qr.iter().filter_map(|v| v.map(|v| PublishedFileId(v.published_file_id.0))).collect::>()))) } } @@ -881,13 +881,7 @@ impl<'a> QueryResults<'a> { } /// Returns an iterator that runs over all the fetched results - pub fn iter<'b>(&'b self) -> impl Iterator + 'b { - (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> + 'b { + pub fn iter<'b>(&'b self) -> impl Iterator> + 'b { (0..self.returned_results()) .map(move |i| self.get(i)) } -- cgit v1.2.3