Skip to main content

UnitConverter

Trait UnitConverter 

pub trait UnitConverter<N, U>
where N: NodeInfo,
{ // Required methods fn count(l: &<N as NodeInfo>::L, in_measured_units: U) -> usize; fn measure(l: &<N as NodeInfo>::L, in_base_units: usize) -> U; fn base(l: &N) -> usize; fn node_measured(l: &N) -> U; fn count_affinty() -> UnitAffinity; fn measure_affinty() -> UnitAffinity; }
Expand description

A trait for NodeInfo to convert between base units and measured units for example, for a Rope, the base unit can be the bytes and the measured units can be line number The base unit is usize and measured units is a generic type

Required Methods§

fn count(l: &<N as NodeInfo>::L, in_measured_units: U) -> usize

Given the measured units, how many base units are there in this NodeInfo

fn measure(l: &<N as NodeInfo>::L, in_base_units: usize) -> U

Measure the NodeInfo given the base units

fn base(l: &N) -> usize

The base units in this NodeInfo

fn node_measured(l: &N) -> U

The measured units in this NodeInfo

fn count_affinty() -> UnitAffinity

Return The UnitAffinity of the converter when doing count when the unit is at the edge of two nodes For UnitAffinity::Before, it will use the node before For UnitAffinity::After, it will use the node after

fn measure_affinty() -> UnitAffinity

Return The UnitAffinity of the converter when doing measure when the unit is at the edge of two nodes For UnitAffinity::Before, it will use the node before For UnitAffinity::After, it will use the node after

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§