Enum pretty_trait::Conditional [] [src]

pub enum Conditional<T> {
    Always(T),
    OnlyBroken(T),
    OnlyUnbroken(T),
}

A wrapper which decides whether or not to render its contents based on the breaking mode of the environment.

Examples

Adding a trailing comma only when broken:

use pretty_trait::{JoinExt, Sep, Conditional, to_string};

let max_line = Some(10);
let tab_size = 4;

let to_render = "lorem,"
    .join(Sep(1))
    .join("ipsum,")
    .join(Sep(1))
    .join("dolor,")
    .join(Sep(1))
    .join("sit,")
    .join(Sep(1))
    .join("amet")
    .join(Conditional::OnlyBroken(","));

// Trailing comma when broken across multiple lines:

let expected_broken = "\
lorem,
ipsum,
dolor,
sit,
amet,";

assert_eq!(to_string(&to_render, max_line, tab_size), expected_broken);

// No trailing comma when rendered on a single line:

assert_eq!(
    to_string(&to_render, None, tab_size),
    "lorem, ipsum, dolor, sit, amet"
);

Variants

Render the wrapped value under all circumstances

Render the wrapped value only when it appears in a multi-line context

Render the wrapped value only when it appears in a single-line context

Trait Implementations

impl<T: Clone> Clone for Conditional<T>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: Copy> Copy for Conditional<T>
[src]

impl<T: Debug> Debug for Conditional<T>
[src]

[src]

Formats the value using the given formatter. Read more

impl<T: Pretty> Pretty for Conditional<T>
[src]

[src]

Calculate the intrinsic size of this value, if it were to be displayed on a single line.

[src]

Render this value in a given context.

Auto Trait Implementations

impl<T> Send for Conditional<T> where
    T: Send

impl<T> Sync for Conditional<T> where
    T: Sync