An implementation of the Instructure Canvas API.
The canvas API is quite large. To mitigate API pollution, the core CanvasClient can have functions loaded by importing the relevant Ext trait.
For example, to use the Account Calendar APIs, import the CalendarExt trait:
use canvas_api::{CalendarExt, CanvasClient};
#[tokio::main]
async fn main() {
let client = CanvasClient::builder("CANVAS_TOKEN")
.build()
.expect("Failed to create canvas client");
println!("{:?}", client.account_calendars(None).await);
}