[−][src]Crate lab_grader
A criterion runner
For complete examples, see the examples directory on Github.
Example
extern crate lab_grader; use lab_grader::*; fn main() { // Step 1: Build a Submission // Collect name and ID from the command line let mut sub = Submission::from_cli(); // Give the submission some data using the data! macro sub.use_data(data! { "some_key" => "some value" }); // Step 2: Establish Criteria let mut criteria = Criteria::from(vec![ Criterion::new( // The criterion's name "First criterion", // How many points it's worth 10, // pass/fail messages ("passed", "failed"), // The test that determines if the criterion passes or not Box::new(|data: &TestData| -> bool { data["some_key"] == "some value" }) ) ]); // Grade the submission against the criteria. // This will assign it a grade and fill it's `passed` and `failed` fields sub.grade_against(&mut criteria); // Print out all the criteria to the student println!("{}", criteria); }
Re-exports
pub use submission::Submission; |
pub use submission::TestData; |
pub use criterion::Criterion; |
pub use criteria::Criteria; |
pub use results_file::AsCsv; |
pub use helpers::web; |
pub use batch::Batch; |
Modules
batch | A batch of criteria, with some extra metadata |
criteria | A collection of |
criterion | Definitions for creating and running criteria |
helpers | Functions for common tasks in criteria |
results_file | |
submission | A bundle of data that represents a students work. |
Macros
data | A macro to easily create a |
prompt | Calls |
yaml | This is an important macro. It reads data from a file using the include_bytes! macro. When compiling for debug, this will read from the filesystem. When compiling for release, this will embed the data in the executable. Graders built using this crate need to have the data embedded in the executable to make it easier to distribute and to keep the data private. |