Skip to main content

OutputRenderer

Struct OutputRenderer 

Source
pub struct OutputRenderer { /* private fields */ }

Implementations§

Source§

impl OutputRenderer

Source

pub fn new(format: OutputFormat) -> Self

Source

pub fn with_envelope(self, envelope: bool) -> Self

Source

pub fn format(&self) -> OutputFormat

Source

pub fn render<T: Serialize>(&self, value: &T) -> Result<()>

Source

pub fn render_list<T: Serialize>(&self, items: &[T]) -> Result<()>

Render a list/array of items. When –envelope is enabled and format is JSON/YAML, wraps output in {"data": [...], "count": N, ...}. Otherwise renders as normal.

Source

pub fn render_list_with_meta<T: Serialize>( &self, items: &[T], meta: &ListMeta, ) -> Result<()>

Render a list that knows whether it is complete.

The truncation signal only has somewhere to live in the enveloped formats. Callers rendering a paginated result should still warn on stderr for the tabular formats, because a table has no field to put this in and a silently short table is the original complaint.

Source

pub fn render_list_or_empty<T: Serialize>( &self, items: &[T], empty_message: &str, ) -> Result<()>

Render a list, with a human-readable note when it is empty.

Table and Markdown are read by people, so they get the message. Every machine format gets an empty array instead, because a script doing | jq cannot parse prose. Printing “No pull requests found” under --format json is what #110 reported, across ~70 list commands.

Source

pub fn render_rows_ordered( &self, rows: &[Value], columns: &[String], ) -> Result<()>

Render rows with the columns given, in the order given.

render derives columns as the sorted union of the rows’ keys, which is right when the caller has no opinion about them. A caller who let the user choose does have one: jira issue search --fields status,summary should read back in that order, and alphabetical sorting would silently reverse it.

Only the tabular formats take the order. JSON and YAML go through the untouched path, because serde_json::Map is a BTreeMap and their key order is alphabetical no matter what we do here.

Source

pub fn render_raw(&self, content: &str) -> Result<()>

Render pre-formatted content directly to stdout (e.g. for markdown issue views).

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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.