pub struct RestCodewarsClient { /* private fields */ }
Expand description
Client for interacting with the Codewars API
Implementations§
Source§impl RestCodewarsClient
Implementation of RestCodewarsClient
impl RestCodewarsClient
Implementation of RestCodewarsClient
Sourcepub fn new() -> Self
pub fn new() -> Self
Create new instance of RestCodewarsClient
§Examples
use codewars_api::rest_api::client::RestCodewarsClient;
// We use Tokio here, because all functions of client is asynchronous
#[tokio::main]
async fn main() {
let client = RestCodewarsClient::new();
// We can use methods of client here
}
Sourcepub async fn get_user(&self, username: &str) -> Result<User, String>
pub async fn get_user(&self, username: &str) -> Result<User, String>
Get info about user by username
§Arguments:
- username (&str) - username of the user
§Returns:
- Result<User, String> - Result that contains the user or an error message
§Errors:
unexpected status code: {status_code}
- If the status code is not 200error decoding response body
- If there is an error decoding the response body with serde
§Examples
let user = client.get_user("ANKDDEV").await.unwrap();
// Get name of user
println!("Name: {}", user.name);
// Get leaderboard position of user
println!("Leaderboard position: {}", user.leaderboard_position);
Sourcepub async fn get_kata(&self, slug: &str) -> Result<CodeChallenge, String>
pub async fn get_kata(&self, slug: &str) -> Result<CodeChallenge, String>
Get info about kata by slug
§Arguments:
- slug (&str) - slug of the kata
§Returns:
- Result<CodeChallenge, String> - Result that contains the kata or an error message
§Errors:
unexpected status code: {status_code}
- If the status code is not 200error decoding response body
- If there is an error decoding the response body with serde
§Examples
let kata = client.get_kata("576bb71bbbcf0951d5000044").await.unwrap();
// Get name of code challenge
println!("Name: {}", kata.name);
// Get slug of code challenge
println!("Slug: {}", kata.slug);
Sourcepub async fn get_completed_challenges(
&self,
username: &str,
page: u16,
) -> Result<CompletedChallenges, String>
pub async fn get_completed_challenges( &self, username: &str, page: u16, ) -> Result<CompletedChallenges, String>
Get list of completed challenges
§Arguments:
- username (&str) - username of the user
- page (u16) - page number
§Returns:
- Result<CompletedChallenges, String> - Result that contains the list of completed challenges or an error message
§Errors:
unexpected status code: {status_code}
- If the status code is not 200error decoding response body
- If there is an error decoding the response body with serde///
§Examples
let challenges = client.get_completed_challenges("ANKDDEV", 0).await.unwrap();
// Get total number of pages
println!("Total pages: {}", challenges.total_pages);
// Get total number of items
println!("Total items: {}", challenges.total_items);
Sourcepub async fn get_completed_challenges_first_page(
&self,
username: &str,
) -> Result<CompletedChallenges, String>
pub async fn get_completed_challenges_first_page( &self, username: &str, ) -> Result<CompletedChallenges, String>
Get first page of completed challenges
§Arguments:
- username (&str) - username of the user
§Returns:
- Result<CompletedChallenges, String> - Result that contains the list of completed challenges or an error message
§Errors:
unexpected status code: {status_code}
- If the status code is not 200error decoding response body
- If there is an error decoding the response body with serde
§Examples
let challenges = client.get_completed_challenges_first_page("ANKDDEV").await.unwrap();
// Get total number of pages
println!("Total pages: {}", challenges.total_pages);
// Get total number of items
println!("Total items: {}", challenges.total_items);
Get list of authored challenges
§Arguments:
- username (&str) - username of the user
§Returns:
- Result<AuthoredChallenges, String> - Result that contains the list of authored challenges or an error message
§Errors:
unexpected status code: {status_code}
- If the status code is not 200error decoding response body
- If there is an error decoding the response body with serde
§Examples
let challenges = client.get_authored_challenges("Dentzil").await.unwrap();
// Get name of first challenge
println!("Total pages: {}", challenges.data.first().unwrap().name);
let challenges = client.get_authored_challenges("aaron.pp").await.unwrap();
// Check if list is not empty
assert!(!challenges.data.is_empty());
Trait Implementations§
Source§impl Clone for RestCodewarsClient
impl Clone for RestCodewarsClient
Source§fn clone(&self) -> RestCodewarsClient
fn clone(&self) -> RestCodewarsClient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for RestCodewarsClient
impl RefUnwindSafe for RestCodewarsClient
impl Send for RestCodewarsClient
impl Sync for RestCodewarsClient
impl Unpin for RestCodewarsClient
impl UnwindSafe for RestCodewarsClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more