pub struct CourseManifest {
pub id: Ustr,
pub name: String,
pub dependencies: Vec<Ustr>,
pub encompassed: Vec<(Ustr, f32)>,
pub superseded: Vec<Ustr>,
pub description: Option<String>,
pub authors: Option<Vec<String>>,
pub metadata: Option<BTreeMap<String, Vec<String>>>,
pub course_material: Option<BasicAsset>,
pub course_instructions: Option<BasicAsset>,
pub generator_config: Option<CourseGenerator>,
}Expand description
A manifest describing the contents of a course.
Fields§
§id: UstrThe ID assigned to this course.
For example, music::instrument::guitar::basic_jazz_chords.
name: StringThe name of the course to be presented to the user.
For example, “Basic Jazz Chords on Guitar”.
dependencies: Vec<Ustr>The IDs of all dependencies of this course.
encompassed: Vec<(Ustr, f32)>The IDs of the courses or lessons encompassed by this course expressed as a tuple (ID, weight). By default, all dependencies are encompassed with a weight of 1.0. Adding an entry to this list is only needed when:
- A course or lesson that is not a dependency of this course is encompassed by it.
- A dependency relationship does not always imply an encompassing one. In that case, such dependencies should be added to this list with a weight of 0.0.
See the documentation of the graph and scheduler
modules for a full explanation of this concept and how it is used to reduce reviews of
exercises that are covered by those in other units.
superseded: Vec<Ustr>The IDs of the courses or lessons superseded by this course. If this course is mastered, then exercises from the superseded courses or lessons will no longer be shown to the student.
description: Option<String>An optional description of the course.
An optional list of the course’s authors.
metadata: Option<BTreeMap<String, Vec<String>>>be attached to a course named “Basic Jazz Chords on Guitar”.
The purpose of this metadata is to allow students to focus on more specific material during a study session which does not belong to a single lesson or course. For example, a student might want to only focus on guitar scales or ear training.
course_material: Option<BasicAsset>An optional asset, which presents the material covered in the course.
course_instructions: Option<BasicAsset>An optional asset, which presents instructions common to all exercises in the course.
generator_config: Option<CourseGenerator>An optional configuration to generate material for this course. Generated courses allow easier creation of courses for specific purposes without requiring the manual creation of all the files a normal course would need.
Trait Implementations§
Source§impl Clone for CourseManifest
impl Clone for CourseManifest
Source§fn clone(&self) -> CourseManifest
fn clone(&self) -> CourseManifest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CourseManifest
impl Debug for CourseManifest
Source§impl<'de> Deserialize<'de> for CourseManifest
impl<'de> Deserialize<'de> for CourseManifest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl GetMetadata for CourseManifest
impl GetMetadata for CourseManifest
Source§impl GetUnitType for CourseManifest
impl GetUnitType for CourseManifest
Source§fn get_unit_type(&self) -> UnitType
fn get_unit_type(&self) -> UnitType
Source§impl NormalizePaths for CourseManifest
impl NormalizePaths for CourseManifest
Source§fn normalize_paths(&self, working_directory: &Path) -> Result<Self>
fn normalize_paths(&self, working_directory: &Path) -> Result<Self>
Source§impl PartialEq for CourseManifest
impl PartialEq for CourseManifest
Source§impl Serialize for CourseManifest
impl Serialize for CourseManifest
Source§impl VerifyPaths for CourseManifest
impl VerifyPaths for CourseManifest
impl StructuralPartialEq for CourseManifest
Auto Trait Implementations§
impl Freeze for CourseManifest
impl RefUnwindSafe for CourseManifest
impl Send for CourseManifest
impl Sync for CourseManifest
impl Unpin for CourseManifest
impl UnsafeUnpin for CourseManifest
impl UnwindSafe for CourseManifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more