Crate bellframe

Source
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 starting Row and yields a sequence of permuted Rows.
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.
IncompatibleStages
An error created when a Row was used to permute something with the wrong length
Stage
A newtype over u8 that represents a stage. All Stages must contain at least one Bell; zero-bell Stages cannot be created without using incorrect unsafe code.

Enums§

Parity
Data type representing the parity of a Row. To generate these, you probably want to use Row::parity. Note that Row::parity always performs a heap allocation and is linear-time in the Stage of the Row. If you are using Paritys as optimisations within hot code I would recommend computing them upfront on your input Rows and then tracking them by hand, probably using the * operator.
Stroke
Stroke of a row, i.e. handstroke (Stroke::Hand) or backstroke (Stroke::Back).
StrokeSet
A set of at least one Stroke
Truth
Whether Rows are repeated in some section of ringing.

Functions§

run_len
Helper function to calculate the length of the longest run off the start of a given Iterator