Skip to main content

Sector

Trait Sector 

Source
pub trait Sector:
    Clone
    + Eq
    + Ord
    + Hash
    + Debug {
    // Required methods
    fn fuse(&self, other: &Self) -> Self;
    fn identity() -> Self;
    fn dual(&self) -> Self;
}
Expand description

Abelian symmetry sector.

For abelian groups the fusion of two sectors is unique and commutative. The following algebraic laws must hold for every implementation:

  • Identity: s.fuse(&S::identity()) == s
  • Inverse: s.fuse(&s.dual()) == S::identity()
  • Commutativity: s.fuse(&t) == t.fuse(&s)

Ord is required so that index types can keep sectors in sorted order for binary search and merge operations.

Required Methods§

Source

fn fuse(&self, other: &Self) -> Self

Fuse two sectors (tensor-product selection rule).

Source

fn identity() -> Self

The identity (trivial) sector.

Source

fn dual(&self) -> Self

The dual (conjugate) sector, mapping incoming ↔ outgoing.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<A, B> Sector for (A, B)
where A: Sector, B: Sector,

Source§

fn fuse(&self, other: &(A, B)) -> (A, B)

Source§

fn identity() -> (A, B)

Source§

fn dual(&self) -> (A, B)

Implementors§