new_pillar_component() constructs an object of class "pillar_component".

pillar_component() is a convenience helper that wraps the input in a list and extracts width and minimum width.

new_pillar_component(x, ..., width, min_width = NULL)

pillar_component(x)

Arguments

x

A bare list (for new_pillar_component()), or an object with attributes "width" and "min_width" attributes (for pillar_component()).

...

These dots are for future extensions and must be empty.

width, min_width

Width and minimum width for the new component. If min_width is NULL, it is assumed to match width.

Details

Objects of class "pillar" are internally a named lists of their components. The default components are title (may be missing), type, and data. Each component is a "pillar_component".

This class captures contents that can be fitted in a rectangle. Each component consists of one or multiple cells that are aligned horizontally (with one space in between) when printed. Each cell has a maximum (i.e., desired) width and may have a minimum width if the contents are compressible. The component object stores the width of the cells as an attribute.

Examples

new_pillar_component(list(letters[1:3]), width = 1)
#> [[1]] #> [1] "a" "b" "c" #> #> attr(,"width") #> [1] 1 #> attr(,"class") #> [1] "pillar_component"
pillar_component(new_pillar_title("letters"))
#> [[1]] #> [[1]] #> [1] "letters" #> #> attr(,"class") #> [1] "pillar_title" #> attr(,"width") #> [1] 7 #> attr(,"min_width") #> [1] 7 #> #> attr(,"width") #> [1] 7 #> attr(,"min_width") #> [1] 7 #> attr(,"class") #> [1] "pillar_component"
pillar_component(new_pillar_type(letters))
#> [[1]] #> [[1]] #> [1] "chr" #> #> attr(,"class") #> [1] "pillar_type" #> attr(,"width") #> [1] 5 #> attr(,"min_width") #> [1] 5 #> #> attr(,"width") #> [1] 5 #> attr(,"min_width") #> [1] 5 #> attr(,"class") #> [1] "pillar_component"
pillar_component(pillar_shaft(letters[1:3]))
#> [[1]] #> <pillar_ornament> #> a #> b #> c #> #> attr(,"width") #> [1] 1 #> attr(,"min_width") #> [1] 1 #> attr(,"class") #> [1] "pillar_component"