dotseg

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package dotseg simulates a segment display that can draw dots.

Given a canvas, determines the placement and size of the individual segments and exposes API that can turn individual segments on and off or display dot characters.

The following outlines segments in the display and their names.

 ---------------
|               |
|               |
|               |
|       o D1    |
|               |
|               |
|               |
|       o D2    |
|               |
|               |
|       o D3    |
 ---------------

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SupportedChars

func SupportedChars() string

SupportedChars returns all characters this display supports.

Types

type Display

type Display struct {
	// contains filtered or unexported fields
}

Display represents the segment display. This object is not thread-safe.

func New

func New(opts ...Option) *Display

New creates a new segment display. Initially all the segments are off.

func (*Display) Clear

func (d *Display) Clear(opts ...Option)

Clear clears the entire display, turning all segments off.

func (*Display) ClearSegment

func (d *Display) ClearSegment(s Segment) error

ClearSegment sets the specified segment off. This method is idempotent.

func (*Display) Draw

func (d *Display) Draw(cvs *canvas.Canvas, opts ...Option) error

Draw draws the current state of the segment display onto the canvas. The canvas must be at least MinCols x MinRows cells, or an error will be returned. Any options provided to draw overwrite the values provided to New.

func (*Display) SetCharacter

func (d *Display) SetCharacter(c rune) error

SetCharacter sets all the segments that are needed to display the provided character. The display only supports characters returned by SupportedsChars(). Doesn't clear the display of segments set previously.

func (*Display) SetSegment

func (d *Display) SetSegment(s Segment) error

SetSegment sets the specified segment on. This method is idempotent.

func (*Display) ToggleSegment

func (d *Display) ToggleSegment(s Segment) error

ToggleSegment toggles the state of the specified segment, i.e it either sets or clears it depending on its current state.

type Option

type Option interface {
	// contains filtered or unexported methods
}

Option is used to provide options.

func CellOpts

func CellOpts(cOpts ...cell.Option) Option

CellOpts sets the cell options on the cells that contain the segment display.

type Segment

type Segment int

Segment represents a single segment in the display.

const (

	// D1 is a segment, see the diagram above.
	D1 Segment
	// D2 is a segment, see the diagram above.
	D2
	// D3 is a segment, see the diagram above.
	D3
)

func AllSegments

func AllSegments() []Segment

AllSegments returns all segments in an undefined order.

func (Segment) String

func (s Segment) String() string

String implements fmt.Stringer()

Directories

Path Synopsis
Package testdotseg provides helpers for tests that use the dotseg package.
Package testdotseg provides helpers for tests that use the dotseg package.

Jump to

Keyboard shortcuts

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