display

package module
v2.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2025 License: MIT Imports: 12 Imported by: 0

README

display

Console display

Interfaces

TODO - cartesian
Tile

A displayable element with a size

Renderable

Object that can be rendered into a tile (delayed rendering)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MapSorter added in v2.1.1

func MapSorter[K comparable, V any](mp map[K]V, less func(l, r K) bool) iter.Seq2[K, V]

func NewBorder

func NewBorder(content tile.Renderable, above *rune, below *rune, left *rune, right *rune) tile.Renderable

func NewHorizontalLine

func NewHorizontalLine(char rune, len int) tile.Renderable

func NewPanel

func NewPanel(content ...PositionedRenderable) tile.Renderable

Constructors

func NewVerticalLine

func NewVerticalLine(char rune, len int) tile.Renderable

Types

type BorderBuilder

type BorderBuilder interface {
	WithContent(content tile.Renderable) BorderBuilder
	WithAbove(character rune) BorderBuilder
	WithBelow(character rune) BorderBuilder
	WithHorizontal(character rune) BorderBuilder
	WithLeft(character rune) BorderBuilder
	WithRight(character rune) BorderBuilder
	WithVertical(character rune) BorderBuilder
	Build() tile.Renderable
}

func NewBorderBuilder

func NewBorderBuilder() BorderBuilder

type Canvas

type Canvas interface {
	core.StringerMl
	// Modify
	WriteAt(position xy.Position, content any) Canvas
	OverwriteAt(position xy.Position, content any) Canvas
	// Cells
	GetCell(position xy.Position) (cell cells.Cell, ok bool)
	SetCell(position xy.Position, cell cells.Cell)
	// Renderable
	Render(rules ...tile.RenderRule) tile.Tile
}

Mutable display type

func NewCanvas

func NewCanvas() Canvas

type IntersectionRuleBuilder

type IntersectionRuleBuilder interface {
	AddIntersection(above, below, left, right *rune, intersection rune) IntersectionRuleBuilder
	Build() tile.RenderRule
}

func NewIntersectionRuleBuilder

func NewIntersectionRuleBuilder() IntersectionRuleBuilder

type ListGetter added in v2.1.0

type ListGetter[T any] func(item T) any

type MapGetter added in v2.1.0

type MapGetter[K comparable, V any] func(key K, value V) any

type PositionedRenderable

type PositionedRenderable struct {
	Position xy.Position
	tile.Renderable
}

type QuickTableBuilder added in v2.1.0

type QuickTableBuilder interface {
	AddHeader(items ...any) QuickTableBuilder
	AddRow(items ...any) QuickTableBuilder
	AddDataSource(QuickTableDataSource) QuickTableBuilder
	AddHeaderSeparator(ch rune) QuickTableBuilder
	AddVerticalSeparator(ch rune) QuickTableBuilder
	AddIntersection(ch rune) QuickTableBuilder
	Padding(before, after int) QuickTableBuilder
	Build() []string
}

func NewQuickTableBuilder added in v2.1.0

func NewQuickTableBuilder() QuickTableBuilder

type QuickTableDataSource added in v2.1.1

type QuickTableDataSource func() [][]any

func NewQuickTableDataSourceList added in v2.1.1

func NewQuickTableDataSourceList[T any](list []T, getters ...ListGetter[T]) QuickTableDataSource

func NewQuickTableDataSourceMap added in v2.1.1

func NewQuickTableDataSourceMap[K comparable, V any](mp map[K]V, getters ...MapGetter[K, V]) QuickTableDataSource

func NewQuickTableDataSourceSortedMap added in v2.1.1

func NewQuickTableDataSourceSortedMap[K comparable, V any](mp map[K]V, less func(l, r K) bool, getters ...MapGetter[K, V]) QuickTableDataSource

type Span

type Span struct {
	Content any
	Span    int
}

Content that spans columns span = no of colums - TODO -1 for all?

type TableBuilder

type TableBuilder interface {
	// Config
	WithHorizontalSeparator(separator rune) TableBuilder
	WithVerticalSeparator(separator rune) TableBuilder
	SetCell(x, y int, content any) TableBuilder
	SetCellByPosition(pos xy.Position, content any) TableBuilder
	AppendRow(content ...any) TableBuilder
	// tile.Renderable
	Build() tile.Renderable
}

func NewTableBuilder

func NewTableBuilder() TableBuilder

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL