Crates.io | codeforces-api |
lib.rs | codeforces-api |
version | 0.3.4 |
source | src |
created_at | 2021-01-31 10:16:30.831465 |
updated_at | 2021-03-02 18:47:35.366022 |
description | Use auth api provided by Codeforces + download testcases |
homepage | |
repository | https://github.com/thud/codeforces-api |
max_upload_size | |
id | 348815 |
size | 79,540 |
A rust crate for interfacing with Codeforces resources with authentication. It provides the full functionality of the Codeforces API as well as the ability to fetch testcases for a given problem.
use codeforces_api::requests::{CFBlogEntryCommand, CFAPIRequestable};
use codeforces_api::responses::CFResult;
fn main() {
// This is equivalent to the Codeforces `blogEntry.view` API method.
let x = CFBlogEntryCommand::View {
blog_entry_id: 82347,
};
// The `.get(..)` method on API commands returns a result with either
// an error or an `Ok(CFResult)`.
match x.get("<api_key>", "<api_secret>") {
Ok(CFResult::CFBlogEntry(blog_entry)) => {
assert_eq!(blog_entry.id, 82347);
println!("Your blog entry: {:?}", blog_entry);
},
Ok(_) => {
// In very rare cases, an unexpected type may be returned by
// `.get()`. If this happens, then you may wish to throw a
// custom error.
panic!("`.get()` returned an unexpected type.");
}
Err(e) => {
// Errors returned are of a custom Error type. This could be
// returned if, for example, an invalid API key/secret was used
// or if there was no internet connection.
panic!("something failed {:?}", e);
}
}
}