From 163db425366033aa93efe0a70471667828a63228 Mon Sep 17 00:00:00 2001 From: kozabrada123 <59031733+kozabrada123@users.noreply.github.com> Date: Sat, 20 Jan 2024 13:15:13 +0100 Subject: [PATCH] Minor instance updates (#465) make Instance::from_url_bundle pub, update Instance docs --- src/instance.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/instance.rs b/src/instance.rs index a4967e8..68a1f7d 100644 --- a/src/instance.rs +++ b/src/instance.rs @@ -19,6 +19,7 @@ use crate::UrlBundle; #[derive(Debug, Clone, Default, Serialize, Deserialize)] /// The [`Instance`]; what you will be using to perform all sorts of actions on the Spacebar server. +/// /// If `limits_information` is `None`, then the instance will not be rate limited. pub struct Instance { pub urls: UrlBundle, @@ -72,8 +73,18 @@ impl PartialEq for LimitsInformation { } impl Instance { - /// Creates a new [`Instance`] from the [relevant instance urls](UrlBundle). To create an Instance from one singular url, use [`Instance::from_root_url()`]. - async fn from_url_bundle(urls: UrlBundle) -> ChorusResult { + + pub(crate) fn clone_limits_if_some(&self) -> Option> { + if self.limits_information.is_some() { + return Some(self.limits_information.as_ref().unwrap().ratelimits.clone()); + } + None + } + + /// Creates a new [`Instance`] from the [relevant instance urls](UrlBundle). + /// + /// To create an Instance from one singular url, use [`Instance::new()`]. + pub async fn from_url_bundle(urls: UrlBundle) -> ChorusResult { let is_limited: Option = Instance::is_limited(&urls.api).await?; let limit_information; @@ -103,17 +114,9 @@ impl Instance { Ok(instance) } - pub(crate) fn clone_limits_if_some(&self) -> Option> { - if self.limits_information.is_some() { - return Some(self.limits_information.as_ref().unwrap().ratelimits.clone()); - } - None - } - /// Creates a new [`Instance`] by trying to get the [relevant instance urls](UrlBundle) from a root url. - /// Shorthand for `Instance::new(UrlBundle::from_root_domain(root_domain).await?)`. /// - /// If `limited` is `true`, then Chorus will track and enforce rate limits for this instance. + /// Shorthand for `Instance::from_url_bundle(UrlBundle::from_root_domain(root_domain).await?)`. pub async fn new(root_url: &str) -> ChorusResult { let urls = UrlBundle::from_root_url(root_url).await?; Instance::from_url_bundle(urls).await