canvas-lms-api 0.2.0

Rust client for the Instructure Canvas LMS REST API
Documentation
use crate::resources::types::{EnrollmentType, WorkflowState};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

/// A Canvas enrollment — the relationship between a user and a course section.
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Enrollment {
    pub id: u64,
    pub course_id: Option<u64>,
    pub course_section_id: Option<u64>,
    pub user_id: Option<u64>,
    pub enrollment_state: Option<WorkflowState>,
    #[serde(rename = "type")]
    pub enrollment_type: Option<EnrollmentType>,
    pub role: Option<String>,
    pub role_id: Option<u64>,
    pub created_at: Option<DateTime<Utc>>,
    pub updated_at: Option<DateTime<Utc>>,
    pub start_at: Option<DateTime<Utc>>,
    pub end_at: Option<DateTime<Utc>>,
    pub last_activity_at: Option<DateTime<Utc>>,
    pub html_url: Option<String>,
    pub grades: Option<EnrollmentGrades>,
}

/// Grade summary for an enrollment.
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct EnrollmentGrades {
    pub html_url: Option<String>,
    pub current_score: Option<f64>,
    pub final_score: Option<f64>,
    pub current_grade: Option<String>,
    pub final_grade: Option<String>,
}