Expand description
Idiomatic Rust representations of commonly used primitives for Change Ringing compositions.
Re-exports§
pub use block::Block;
pub use call::Call;
pub use mask::Mask;
pub use method::Method;
pub use method_lib::MethodLib;
pub use music::MusicType;
pub use place_not::PlaceNot;
pub use place_not::PnBlock;
pub use row::same_stage_vec::SameStageVec;
pub use row::InvalidRowError;
pub use row::Row;
pub use row::RowBuf;
Modules§
- block
- A representation of a
Block
of ringing; i.e. a sort of ‘multi-permutation’ which takes a startingRow
and yields a sequence of permutedRow
s. - call
- mask
- method
- method_
lib - music
- place_
not - Module for parsing and handling place notation
- row
Structs§
- Bell
- A type-safe representation of a ‘bell’, which adds things like conversions to and from
commonly-used bell names. Each
Bell
takes a single byte in memory. - Incompatible
Stages - An error created when a
Row
was used to permute something with the wrong length - Stage
- A newtype over
u8
that represents a stage. AllStage
s must contain at least oneBell
; zero-bellStage
s cannot be created without using incorrectunsafe
code.
Enums§
- Parity
- Data type representing the parity of a
Row
. To generate these, you probably want to useRow::parity
. Note thatRow::parity
always performs a heap allocation and is linear-time in theStage
of theRow
. If you are usingParity
s as optimisations within hot code I would recommend computing them upfront on your inputRow
s and then tracking them by hand, probably using the*
operator. - Stroke
- Stroke of a row, i.e. handstroke (
Stroke::Hand
) or backstroke (Stroke::Back
). - Stroke
Set - A set of at least one
Stroke
- Truth
- Whether
Row
s are repeated in some section of ringing.