Struct Priority

Source
pub struct Priority;
Expand description

An abstract factory to construct different Peaker methods.

use tabled::{
    Table,
    assert::assert_table,
    settings::{Style, peaker::Priority, Width},
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::max(false)));

let output = table.to_string();

assert_table!(
    output,
    "┌───┬────┬────┐"
    "│ & │ &s │ i3 │"
    "│ s │ tr │ 2  │"
    "│ t │    │    │"
    "│ r │    │    │"
    "├───┼────┼────┤"
    "│ 1 │ He │ 10 │"
    "│   │ ll │ 0  │"
    "│   │ o  │    │"
    "├───┼────┼────┤"
    "│ 2 │ Wo │ 10 │"
    "│   │ rl │ 00 │"
    "│   │ d  │    │"
    "└───┴────┴────┘"
);

Implementations§

Source§

impl Priority

Source

pub fn none() -> PriorityNone

Returns a Peaker which goes over list one by one, in order from left to right with no prioritization, just peaking each value after another.

use tabled::{
    Table,
    settings::{Style, peaker::Priority, Width},
    assert::assert_table,
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::none()));

let output = table.to_string();

assert_table!(
    output,
    "┌───┬────┬────┐"
    "│ & │ &s │ i3 │"
    "│ s │ tr │ 2  │"
    "│ t │    │    │"
    "│ r │    │    │"
    "├───┼────┼────┤"
    "│ 1 │ He │ 10 │"
    "│   │ ll │ 0  │"
    "│   │ o  │    │"
    "├───┼────┼────┤"
    "│ 2 │ Wo │ 10 │"
    "│   │ rl │ 00 │"
    "│   │ d  │    │"
    "└───┴────┴────┘"
);
Source

pub fn min(right: bool) -> PriorityMin

Returns a Peaker which goes over list peacking a minimum value, and prioritizing a chosen side when equal values are met.

use tabled::{
    Table,
    settings::{Style, peaker::Priority, Width},
    assert::assert_table,
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::min(true)));

let output = table.to_string();

assert_table!(
    output,
    "┌──┬───────┬──┐"
    "│  │ &str  │  │"
    "├──┼───────┼──┤"
    "│  │ Hello │  │"
    "├──┼───────┼──┤"
    "│  │ World │  │"
    "└──┴───────┴──┘"
);
Source

pub fn max(right: bool) -> PriorityMax

Returns a Peaker which goes over list peacking a maximum value, and prioritizing a chosen side when equal values are met.

use tabled::{
    Table,
    settings::{Style, peaker::Priority, Width},
    assert::assert_table,
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::max(true)));

let output = table.to_string();

assert_table!(
    output,
    "┌────┬────┬───┐"
    "│ &s │ &s │ i │"
    "│ tr │ tr │ 3 │"
    "│    │    │ 2 │"
    "├────┼────┼───┤"
    "│ 1  │ He │ 1 │"
    "│    │ ll │ 0 │"
    "│    │ o  │ 0 │"
    "├────┼────┼───┤"
    "│ 2  │ Wo │ 1 │"
    "│    │ rl │ 0 │"
    "│    │ d  │ 0 │"
    "│    │    │ 0 │"
    "└────┴────┴───┘"
);
Source

pub fn left() -> PriorityLeft

Returns a Peaker which goes over list peacking a left most value as far as possible.

use tabled::{
    Table,
    settings::{Style, peaker::Priority, Width},
    assert::assert_table,
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::left()));

let output = table.to_string();

assert_table!(
    output,
    "┌──┬───┬──────┐"
    "│  │ & │ i32  │"
    "│  │ s │      │"
    "│  │ t │      │"
    "│  │ r │      │"
    "├──┼───┼──────┤"
    "│  │ H │ 100  │"
    "│  │ e │      │"
    "│  │ l │      │"
    "│  │ l │      │"
    "│  │ o │      │"
    "├──┼───┼──────┤"
    "│  │ W │ 1000 │"
    "│  │ o │      │"
    "│  │ r │      │"
    "│  │ l │      │"
    "│  │ d │      │"
    "└──┴───┴──────┘"
);
Source

pub fn right() -> PriorityRight

Returns a Peaker which goes over list peacking a right most value as far as possible.

use tabled::{
    Table,
    settings::{Style, peaker::Priority, Width},
    assert::assert_table,
};

let data = [
    ("1", "Hello", 100),
    ("2", "World", 1000),
];

let mut table = Table::new(data);
table.with(Style::modern());
table.with(Width::wrap(15).priority(Priority::right()));

let output = table.to_string();

assert_table!(
    output,
    "┌──────┬───┬──┐"
    "│ &str │ & │  │"
    "│      │ s │  │"
    "│      │ t │  │"
    "│      │ r │  │"
    "├──────┼───┼──┤"
    "│ 1    │ H │  │"
    "│      │ e │  │"
    "│      │ l │  │"
    "│      │ l │  │"
    "│      │ o │  │"
    "├──────┼───┼──┤"
    "│ 2    │ W │  │"
    "│      │ o │  │"
    "│      │ r │  │"
    "│      │ l │  │"
    "│      │ d │  │"
    "└──────┴───┴──┘"
);

Trait Implementations§

Source§

impl Clone for Priority

Source§

fn clone(&self) -> Priority

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Priority

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Priority

Source§

fn default() -> Priority

Returns the “default value” for a type. Read more
Source§

impl Hash for Priority

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for Priority

Source§

fn cmp(&self, other: &Priority) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Priority

Source§

fn eq(&self, other: &Priority) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Priority

Source§

fn partial_cmp(&self, other: &Priority) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for Priority

Source§

impl Eq for Priority

Source§

impl StructuralPartialEq for Priority

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.