Crate bellframe[][src]

Expand description

Idiomatic Rust representations of commonly used primitives for Change Ringing compositions.

Re-exports

pub use block::AnnotBlock;
pub use block::AnnotRow;
pub use block::Block;
pub use call::Call;
pub use method::Method;
pub use place_not::PlaceNot;
pub use place_not::PnBlock;
pub use row::InvalidRowError;
pub use row::Row;

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
method
place_not

Module for parsing and handling place notation

row

A heap-allocated row of Bells. This is also used as a permutation.

Structs

Bell

A type-safe representation of a ‘bell’, which adds things like conversions to and from commonly-used bell names.

IncompatibleStages

An error created when a Row was used to permute something with the wrong length

Stage

A newtype over usize that represents a stage.

Enums

Parity

Data type representing the parity of a Row. To generate these, you probably want to use [RowTrait::parity]. Note that [RowTrait::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.

Functions

run_len

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