28 lines
1.2 KiB
Rust
28 lines
1.2 KiB
Rust
// SPDX-License-Identifier: Prosperity-3.0.0
|
|
// Copyright Scientific Computing Studio
|
|
// Source: https://git.scient.ing/education/coursebank
|
|
|
|
//! Support for writing items and building assessments from them.
|
|
//!
|
|
//! The three modules here are what you interact with before an exam exists, and
|
|
//! they divide by how much authority each one has.
|
|
//!
|
|
//! [`lint`] has none. Its 26 rules are advice with stable codes, every one
|
|
//! silenceable with `--ignore`. It is deliberately separate from the validation in
|
|
//! [`crate::model::bank`], which enforces what must be true and fails. Conflating
|
|
//! the two produces a tool that either blocks you on style or lets real errors
|
|
//! through.
|
|
//!
|
|
//! [`select`] draws an assessment from a blueprint. It places objective minimums
|
|
//! before level quotas, because a coverage requirement is the constraint most
|
|
//! likely to become unsatisfiable, and it prefers least-recently-used items so a
|
|
//! bank rotates rather than converging on your favourites.
|
|
//!
|
|
//! [`jsonschema`] emits JSON Schema so an editor autocompletes the YAML. That is
|
|
//! a better authoring experience than any validator: catching `cognitve_process`
|
|
//! as you type beats reading it in a list afterward.
|
|
|
|
pub mod jsonschema;
|
|
pub mod lint;
|
|
pub mod select;
|