From f08cf246e2b4d7bf96da494a79f13b6fa537469a Mon Sep 17 00:00:00 2001 From: William Venner Date: Wed, 31 Mar 2021 01:00:29 +0100 Subject: Add QueryResults::get_children --- src/ugc.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ugc.rs b/src/ugc.rs index d7721a0..6019a0c 100644 --- a/src/ugc.rs +++ b/src/ugc.rs @@ -1191,6 +1191,26 @@ impl<'a> QueryResults<'a> { (0..self.returned_results()) .map(move |i| self.get(i)) } + + /// Returns the given index's children as a list of PublishedFileId. + /// + /// You must call `include_children(true)` before fetching the query for this to work. + /// + /// Returns None if the index was out of bounds. + pub fn get_children(&self, index: u32) -> Option> { + let num_children = self.get(index)?.num_children; + let mut children: Vec = vec![0; num_children as usize]; + + let ok = unsafe { + sys::SteamAPI_ISteamUGC_GetQueryUGCChildren(self.ugc, self.handle, index, children.as_mut_ptr(), num_children) + }; + + if ok { + Some(children.into_iter().map(Into::into).collect()) + } else { + None + } + } } /// Query result -- cgit v1.2.3