pub struct OutputRenderer { /* private fields */ }Implementations§
Source§impl OutputRenderer
impl OutputRenderer
pub fn new(format: OutputFormat) -> Self
pub fn with_envelope(self, envelope: bool) -> Self
pub fn format(&self) -> OutputFormat
pub fn render<T: Serialize>(&self, value: &T) -> Result<()>
Sourcepub fn render_document<T: Serialize>(&self, value: &T) -> Result<()>
pub fn render_document<T: Serialize>(&self, value: &T) -> Result<()>
Render a whole API document, where the JSON is the product.
Table mode prints it as pretty JSON, as every single object used to be:
jira workflow export without --output, or a raw folder get, has no
useful two-column form. Every other format renders as render does.
Sourcepub fn render_list<T: Serialize>(&self, items: &[T]) -> Result<()>
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.
Sourcepub fn render_list_with_meta<T: Serialize>(
&self,
items: &[T],
meta: &ListMeta,
) -> Result<()>
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.
Sourcepub fn render_list_or_empty<T: Serialize>(
&self,
items: &[T],
empty_message: &str,
) -> Result<()>
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.
Sourcepub fn render_rows_ordered(
&self,
rows: &[Value],
columns: &[String],
) -> Result<()>
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.
Sourcepub fn render_raw(&self, content: &str) -> Result<()>
pub fn render_raw(&self, content: &str) -> Result<()>
Render pre-formatted content directly to stdout (e.g. for markdown issue views).