internal

package
v0.0.0-...-63c82d5 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

Documentation

Index

Constants

View Source
const (
	DROP = "DROP"
	DUP  = "DUP"
	NEG  = "NEG"
	UNDO = "UNDO"
	YANK = "YANK"
)

these are sometimes run directly

Variables

View Source
var (
	// how many lines of the stack should we show?
	StackSize = 6
	// truncate history/stack after this to avoid memory issues
	MaxArraySize = 50
	// size of undo stack
	UndoSize = 50
	// how many digits of precision?
	Precision = 10

	LG = lipgloss.NewStyle() // just to make things easy

	// panes & borders
	PaneStyle        = LG.Padding(1, 2).Border(lipgloss.RoundedBorder()).BorderForeground(Blue400)
	BorderStyle      = LG.Foreground(PaneStyle.GetBorderTopForeground())
	BorderTitleStyle = LG.Foreground(Gray400)

	// stack
	ErrorStyle  = LG.Foreground(White).Background(Red600)
	SayStyle    = LG.Foreground(White).Background(Green500)
	StackStyle  = PaneStyle.PaddingTop(2).PaddingBottom(1)
	IndexStyle  = LG.Foreground(Gray600)
	CursorStyle = LG.Foreground(lipgloss.AdaptiveColor{Light: string(Yellow500), Dark: string(Yellow300)})

	// help
	HelpStyle    = LG.Foreground(Gray700)
	HelpKeyStyle = LG.Foreground(Green500).Bold(true)

	// status
	StatusStyle = LG.
				Foreground(White).
				Background(Blue600).
				Bold(true).
				AlignHorizontal(lipgloss.Center).
				Padding(0, 1)

	// vhs banner
	BannerStyle = LG.
				AlignHorizontal(lipgloss.Center).
				AlignVertical(lipgloss.Center).
				Foreground(Yellow400).
				Bold(true).
				Padding(0, 10)

	// cramped
	CrampedStyle = LG.
					Foreground(Gray400).
					Background(Violet900).
					Bold(true).
					AlignHorizontal(lipgloss.Center).
					AlignVertical(lipgloss.Center).
					Padding(0, 3)

	// same len as StackSize, for simplicity
	GradientColors = []lipgloss.TerminalColor{
		lipgloss.AdaptiveColor{Light: string(Gray200), Dark: string(Gray600)},
		lipgloss.AdaptiveColor{Light: string(Gray300), Dark: string(Gray500)},
		lipgloss.AdaptiveColor{Light: string(Gray400), Dark: string(Gray400)},
		lipgloss.AdaptiveColor{Light: string(Gray500), Dark: string(Gray300)},
		lipgloss.AdaptiveColor{Light: string(Gray600), Dark: string(Gray200)},
		lipgloss.AdaptiveColor{Light: string(Black), Dark: string(White)},
	}
	GradientStyles = MapV(GradientColors, LG.Foreground)

	TitleColors = []lipgloss.TerminalColor{
		Red600, Yellow600, Blue600, Green600, Orange600, Purple500,
	}
	TitleStyles = MapV(TitleColors, LG.Foreground)
)
View Source
var (
	Black = lipgloss.Color("#000000") // #000000
	White = lipgloss.Color("#ffffff") // #ffffff

	Slate50    = lipgloss.Color("#f8fafc") // #f8fafc
	Slate100   = lipgloss.Color("#f1f5f9") // #f1f5f9
	Slate200   = lipgloss.Color("#e2e8f0") // #e2e8f0
	Slate300   = lipgloss.Color("#cbd5e1") // #cbd5e1
	Slate400   = lipgloss.Color("#94a3b8") // #94a3b8
	Slate500   = lipgloss.Color("#64748b") // #64748b
	Slate600   = lipgloss.Color("#475569") // #475569
	Slate700   = lipgloss.Color("#334155") // #334155
	Slate800   = lipgloss.Color("#1e293b") // #1e293b
	Slate900   = lipgloss.Color("#0f172a") // #0f172a
	Slate950   = lipgloss.Color("#020617") // #020617
	Gray50     = lipgloss.Color("#f9fafb") // #f9fafb
	Gray100    = lipgloss.Color("#f3f4f6") // #f3f4f6
	Gray200    = lipgloss.Color("#e5e7eb") // #e5e7eb
	Gray300    = lipgloss.Color("#d1d5db") // #d1d5db
	Gray400    = lipgloss.Color("#9ca3af") // #9ca3af
	Gray500    = lipgloss.Color("#6b7280") // #6b7280
	Gray600    = lipgloss.Color("#4b5563") // #4b5563
	Gray700    = lipgloss.Color("#374151") // #374151
	Gray800    = lipgloss.Color("#1f2937") // #1f2937
	Gray900    = lipgloss.Color("#111827") // #111827
	Gray950    = lipgloss.Color("#030712") // #030712
	Zinc50     = lipgloss.Color("#fafafa") // #fafafa
	Zinc100    = lipgloss.Color("#f4f4f5") // #f4f4f5
	Zinc200    = lipgloss.Color("#e4e4e7") // #e4e4e7
	Zinc300    = lipgloss.Color("#d4d4d8") // #d4d4d8
	Zinc400    = lipgloss.Color("#a1a1aa") // #a1a1aa
	Zinc500    = lipgloss.Color("#71717a") // #71717a
	Zinc600    = lipgloss.Color("#52525b") // #52525b
	Zinc700    = lipgloss.Color("#3f3f46") // #3f3f46
	Zinc800    = lipgloss.Color("#27272a") // #27272a
	Zinc900    = lipgloss.Color("#18181b") // #18181b
	Zinc950    = lipgloss.Color("#09090b") // #09090b
	Neutral50  = lipgloss.Color("#fafafa") // #fafafa
	Neutral100 = lipgloss.Color("#f5f5f5") // #f5f5f5
	Neutral200 = lipgloss.Color("#e5e5e5") // #e5e5e5
	Neutral300 = lipgloss.Color("#d4d4d4") // #d4d4d4
	Neutral400 = lipgloss.Color("#a3a3a3") // #a3a3a3
	Neutral500 = lipgloss.Color("#737373") // #737373
	Neutral600 = lipgloss.Color("#525252") // #525252
	Neutral700 = lipgloss.Color("#404040") // #404040
	Neutral800 = lipgloss.Color("#262626") // #262626
	Neutral900 = lipgloss.Color("#171717") // #171717
	Neutral950 = lipgloss.Color("#0a0a0a") // #0a0a0a
	Stone50    = lipgloss.Color("#fafaf9") // #fafaf9
	Stone100   = lipgloss.Color("#f5f5f4") // #f5f5f4
	Stone200   = lipgloss.Color("#e7e5e4") // #e7e5e4
	Stone300   = lipgloss.Color("#d6d3d1") // #d6d3d1
	Stone400   = lipgloss.Color("#a8a29e") // #a8a29e
	Stone500   = lipgloss.Color("#78716c") // #78716c
	Stone600   = lipgloss.Color("#57534e") // #57534e
	Stone700   = lipgloss.Color("#44403c") // #44403c
	Stone800   = lipgloss.Color("#292524") // #292524
	Stone900   = lipgloss.Color("#1c1917") // #1c1917
	Stone950   = lipgloss.Color("#0c0a09") // #0c0a09
	Red50      = lipgloss.Color("#fef2f2") // #fef2f2
	Red100     = lipgloss.Color("#fee2e2") // #fee2e2
	Red200     = lipgloss.Color("#fecaca") // #fecaca
	Red300     = lipgloss.Color("#fca5a5") // #fca5a5
	Red400     = lipgloss.Color("#f87171") // #f87171
	Red500     = lipgloss.Color("#ef4444") // #ef4444
	Red600     = lipgloss.Color("#dc2626") // #dc2626
	Red700     = lipgloss.Color("#b91c1c") // #b91c1c
	Red800     = lipgloss.Color("#991b1b") // #991b1b
	Red900     = lipgloss.Color("#7f1d1d") // #7f1d1d
	Red950     = lipgloss.Color("#450a0a") // #450a0a
	Orange50   = lipgloss.Color("#fff7ed") // #fff7ed
	Orange100  = lipgloss.Color("#ffedd5") // #ffedd5
	Orange200  = lipgloss.Color("#fed7aa") // #fed7aa
	Orange300  = lipgloss.Color("#fdba74") // #fdba74
	Orange400  = lipgloss.Color("#fb923c") // #fb923c
	Orange500  = lipgloss.Color("#f97316") // #f97316
	Orange600  = lipgloss.Color("#ea580c") // #ea580c
	Orange700  = lipgloss.Color("#c2410c") // #c2410c
	Orange800  = lipgloss.Color("#9a3412") // #9a3412
	Orange900  = lipgloss.Color("#7c2d12") // #7c2d12
	Orange950  = lipgloss.Color("#431407") // #431407
	Amber50    = lipgloss.Color("#fffbeb") // #fffbeb
	Amber100   = lipgloss.Color("#fef3c7") // #fef3c7
	Amber200   = lipgloss.Color("#fde68a") // #fde68a
	Amber300   = lipgloss.Color("#fcd34d") // #fcd34d
	Amber400   = lipgloss.Color("#fbbf24") // #fbbf24
	Amber500   = lipgloss.Color("#f59e0b") // #f59e0b
	Amber600   = lipgloss.Color("#d97706") // #d97706
	Amber700   = lipgloss.Color("#b45309") // #b45309
	Amber800   = lipgloss.Color("#92400e") // #92400e
	Amber900   = lipgloss.Color("#78350f") // #78350f
	Amber950   = lipgloss.Color("#451a03") // #451a03
	Yellow50   = lipgloss.Color("#fefce8") // #fefce8
	Yellow100  = lipgloss.Color("#fef9c3") // #fef9c3
	Yellow200  = lipgloss.Color("#fef08a") // #fef08a
	Yellow300  = lipgloss.Color("#fde047") // #fde047
	Yellow400  = lipgloss.Color("#facc15") // #facc15
	Yellow500  = lipgloss.Color("#eab308") // #eab308
	Yellow600  = lipgloss.Color("#ca8a04") // #ca8a04
	Yellow700  = lipgloss.Color("#a16207") // #a16207
	Yellow800  = lipgloss.Color("#854d0e") // #854d0e
	Yellow900  = lipgloss.Color("#713f12") // #713f12
	Yellow950  = lipgloss.Color("#422006") // #422006
	Lime50     = lipgloss.Color("#f7fee7") // #f7fee7
	Lime100    = lipgloss.Color("#ecfccb") // #ecfccb
	Lime200    = lipgloss.Color("#d9f99d") // #d9f99d
	Lime300    = lipgloss.Color("#bef264") // #bef264
	Lime400    = lipgloss.Color("#a3e635") // #a3e635
	Lime500    = lipgloss.Color("#84cc16") // #84cc16
	Lime600    = lipgloss.Color("#65a30d") // #65a30d
	Lime700    = lipgloss.Color("#4d7c0f") // #4d7c0f
	Lime800    = lipgloss.Color("#3f6212") // #3f6212
	Lime900    = lipgloss.Color("#365314") // #365314
	Lime950    = lipgloss.Color("#1a2e05") // #1a2e05
	Green50    = lipgloss.Color("#f0fdf4") // #f0fdf4
	Green100   = lipgloss.Color("#dcfce7") // #dcfce7
	Green200   = lipgloss.Color("#bbf7d0") // #bbf7d0
	Green300   = lipgloss.Color("#86efac") // #86efac
	Green400   = lipgloss.Color("#4ade80") // #4ade80
	Green500   = lipgloss.Color("#22c55e") // #22c55e
	Green600   = lipgloss.Color("#16a34a") // #16a34a
	Green700   = lipgloss.Color("#15803d") // #15803d
	Green800   = lipgloss.Color("#166534") // #166534
	Green900   = lipgloss.Color("#14532d") // #14532d
	Green950   = lipgloss.Color("#052e16") // #052e16
	Emerald50  = lipgloss.Color("#ecfdf5") // #ecfdf5
	Emerald100 = lipgloss.Color("#d1fae5") // #d1fae5
	Emerald200 = lipgloss.Color("#a7f3d0") // #a7f3d0
	Emerald300 = lipgloss.Color("#6ee7b7") // #6ee7b7
	Emerald400 = lipgloss.Color("#34d399") // #34d399
	Emerald500 = lipgloss.Color("#10b981") // #10b981
	Emerald600 = lipgloss.Color("#059669") // #059669
	Emerald700 = lipgloss.Color("#047857") // #047857
	Emerald800 = lipgloss.Color("#065f46") // #065f46
	Emerald900 = lipgloss.Color("#064e3b") // #064e3b
	Emerald950 = lipgloss.Color("#022c22") // #022c22
	Teal50     = lipgloss.Color("#f0fdfa") // #f0fdfa
	Teal100    = lipgloss.Color("#ccfbf1") // #ccfbf1
	Teal200    = lipgloss.Color("#99f6e4") // #99f6e4
	Teal300    = lipgloss.Color("#5eead4") // #5eead4
	Teal400    = lipgloss.Color("#2dd4bf") // #2dd4bf
	Teal500    = lipgloss.Color("#14b8a6") // #14b8a6
	Teal600    = lipgloss.Color("#0d9488") // #0d9488
	Teal700    = lipgloss.Color("#0f766e") // #0f766e
	Teal800    = lipgloss.Color("#115e59") // #115e59
	Teal900    = lipgloss.Color("#134e4a") // #134e4a
	Teal950    = lipgloss.Color("#042f2e") // #042f2e
	Cyan50     = lipgloss.Color("#ecfeff") // #ecfeff
	Cyan100    = lipgloss.Color("#cffafe") // #cffafe
	Cyan200    = lipgloss.Color("#a5f3fc") // #a5f3fc
	Cyan300    = lipgloss.Color("#67e8f9") // #67e8f9
	Cyan400    = lipgloss.Color("#22d3ee") // #22d3ee
	Cyan500    = lipgloss.Color("#06b6d4") // #06b6d4
	Cyan600    = lipgloss.Color("#0891b2") // #0891b2
	Cyan700    = lipgloss.Color("#0e7490") // #0e7490
	Cyan800    = lipgloss.Color("#155e75") // #155e75
	Cyan900    = lipgloss.Color("#164e63") // #164e63
	Cyan950    = lipgloss.Color("#083344") // #083344
	Sky50      = lipgloss.Color("#f0f9ff") // #f0f9ff
	Sky100     = lipgloss.Color("#e0f2fe") // #e0f2fe
	Sky200     = lipgloss.Color("#bae6fd") // #bae6fd
	Sky300     = lipgloss.Color("#7dd3fc") // #7dd3fc
	Sky400     = lipgloss.Color("#38bdf8") // #38bdf8
	Sky500     = lipgloss.Color("#0ea5e9") // #0ea5e9
	Sky600     = lipgloss.Color("#0284c7") // #0284c7
	Sky700     = lipgloss.Color("#0369a1") // #0369a1
	Sky800     = lipgloss.Color("#075985") // #075985
	Sky900     = lipgloss.Color("#0c4a6e") // #0c4a6e
	Sky950     = lipgloss.Color("#082f49") // #082f49
	Blue50     = lipgloss.Color("#eff6ff") // #eff6ff
	Blue100    = lipgloss.Color("#dbeafe") // #dbeafe
	Blue200    = lipgloss.Color("#bfdbfe") // #bfdbfe
	Blue300    = lipgloss.Color("#93c5fd") // #93c5fd
	Blue400    = lipgloss.Color("#60a5fa") // #60a5fa
	Blue500    = lipgloss.Color("#3b82f6") // #3b82f6
	Blue600    = lipgloss.Color("#2563eb") // #2563eb
	Blue700    = lipgloss.Color("#1d4ed8") // #1d4ed8
	Blue800    = lipgloss.Color("#1e40af") // #1e40af
	Blue900    = lipgloss.Color("#1e3a8a") // #1e3a8a
	Blue950    = lipgloss.Color("#172554") // #172554
	Indigo50   = lipgloss.Color("#eef2ff") // #eef2ff
	Indigo100  = lipgloss.Color("#e0e7ff") // #e0e7ff
	Indigo200  = lipgloss.Color("#c7d2fe") // #c7d2fe
	Indigo300  = lipgloss.Color("#a5b4fc") // #a5b4fc
	Indigo400  = lipgloss.Color("#818cf8") // #818cf8
	Indigo500  = lipgloss.Color("#6366f1") // #6366f1
	Indigo600  = lipgloss.Color("#4f46e5") // #4f46e5
	Indigo700  = lipgloss.Color("#4338ca") // #4338ca
	Indigo800  = lipgloss.Color("#3730a3") // #3730a3
	Indigo900  = lipgloss.Color("#312e81") // #312e81
	Indigo950  = lipgloss.Color("#1e1b4b") // #1e1b4b
	Violet50   = lipgloss.Color("#f5f3ff") // #f5f3ff
	Violet100  = lipgloss.Color("#ede9fe") // #ede9fe
	Violet200  = lipgloss.Color("#ddd6fe") // #ddd6fe
	Violet300  = lipgloss.Color("#c4b5fd") // #c4b5fd
	Violet400  = lipgloss.Color("#a78bfa") // #a78bfa
	Violet500  = lipgloss.Color("#8b5cf6") // #8b5cf6
	Violet600  = lipgloss.Color("#7c3aed") // #7c3aed
	Violet700  = lipgloss.Color("#6d28d9") // #6d28d9
	Violet800  = lipgloss.Color("#5b21b6") // #5b21b6
	Violet900  = lipgloss.Color("#4c1d95") // #4c1d95
	Violet950  = lipgloss.Color("#2e1065") // #2e1065
	Purple50   = lipgloss.Color("#faf5ff") // #faf5ff
	Purple100  = lipgloss.Color("#f3e8ff") // #f3e8ff
	Purple200  = lipgloss.Color("#e9d5ff") // #e9d5ff
	Purple300  = lipgloss.Color("#d8b4fe") // #d8b4fe
	Purple400  = lipgloss.Color("#c084fc") // #c084fc
	Purple500  = lipgloss.Color("#a855f7") // #a855f7
	Purple600  = lipgloss.Color("#9333ea") // #9333ea
	Purple700  = lipgloss.Color("#7e22ce") // #7e22ce
	Purple800  = lipgloss.Color("#6b21a8") // #6b21a8
	Purple900  = lipgloss.Color("#581c87") // #581c87
	Purple950  = lipgloss.Color("#3b0764") // #3b0764
	Fuchsia50  = lipgloss.Color("#fdf4ff") // #fdf4ff
	Fuchsia100 = lipgloss.Color("#fae8ff") // #fae8ff
	Fuchsia200 = lipgloss.Color("#f5d0fe") // #f5d0fe
	Fuchsia300 = lipgloss.Color("#f0abfc") // #f0abfc
	Fuchsia400 = lipgloss.Color("#e879f9") // #e879f9
	Fuchsia500 = lipgloss.Color("#d946ef") // #d946ef
	Fuchsia600 = lipgloss.Color("#c026d3") // #c026d3
	Fuchsia700 = lipgloss.Color("#a21caf") // #a21caf
	Fuchsia800 = lipgloss.Color("#86198f") // #86198f
	Fuchsia900 = lipgloss.Color("#701a75") // #701a75
	Fuchsia950 = lipgloss.Color("#4a044e") // #4a044e
	Pink50     = lipgloss.Color("#fdf2f8") // #fdf2f8
	Pink100    = lipgloss.Color("#fce7f3") // #fce7f3
	Pink200    = lipgloss.Color("#fbcfe8") // #fbcfe8
	Pink300    = lipgloss.Color("#f9a8d4") // #f9a8d4
	Pink400    = lipgloss.Color("#f472b6") // #f472b6
	Pink500    = lipgloss.Color("#ec4899") // #ec4899
	Pink600    = lipgloss.Color("#db2777") // #db2777
	Pink700    = lipgloss.Color("#be185d") // #be185d
	Pink800    = lipgloss.Color("#9d174d") // #9d174d
	Pink900    = lipgloss.Color("#831843") // #831843
	Pink950    = lipgloss.Color("#500724") // #500724
	Rose50     = lipgloss.Color("#fff1f2") // #fff1f2
	Rose100    = lipgloss.Color("#ffe4e6") // #ffe4e6
	Rose200    = lipgloss.Color("#fecdd3") // #fecdd3
	Rose300    = lipgloss.Color("#fda4af") // #fda4af
	Rose400    = lipgloss.Color("#fb7185") // #fb7185
	Rose500    = lipgloss.Color("#f43f5e") // #f43f5e
	Rose600    = lipgloss.Color("#e11d48") // #e11d48
	Rose700    = lipgloss.Color("#be123c") // #be123c
	Rose800    = lipgloss.Color("#9f1239") // #9f1239
	Rose900    = lipgloss.Color("#881337") // #881337
	Rose950    = lipgloss.Color("#4c0519") // #4c0519
)
View Source
var (
	// decimal constants
	Half    = decimal.NewFromFloat(0.5)
	Ln10    = decimal.NewFromFloat(math.Log(10))
	One     = decimal.NewFromFloat(1)
	Pi      = decimal.NewFromFloat(math.Pi)
	Epsilon = decimal.NewFromFloat(1e-6)
)
View Source
var Commands = []Command{
	{Name: "ADD", /* contains filtered or unexported fields */},
	{Name: "CLEAR", /* contains filtered or unexported fields */},
	{Name: "DIV", /* contains filtered or unexported fields */},
	{Name: "DROP", /* contains filtered or unexported fields */},
	{Name: "DUP", /* contains filtered or unexported fields */},
	{Name: "FACT", /* contains filtered or unexported fields */},
	{Name: "INV", /* contains filtered or unexported fields */},
	{Name: "LN", /* contains filtered or unexported fields */},
	{Name: "LOG", /* contains filtered or unexported fields */},
	{Name: "MOD", /* contains filtered or unexported fields */},
	{Name: "MUL", /* contains filtered or unexported fields */},
	{Name: "NEG", /* contains filtered or unexported fields */},
	{Name: "PI", /* contains filtered or unexported fields */},
	{Name: "POW", /* contains filtered or unexported fields */},
	{Name: "SQRT", /* contains filtered or unexported fields */},
	{Name: "SUB", /* contains filtered or unexported fields */},
	{Name: "SWAP", /* contains filtered or unexported fields */},
	{Name: "YANK", /* contains filtered or unexported fields */},
	{Name: "UNDO", /* contains filtered or unexported fields */},
}
View Source
var CommandsByKey = lo.KeyBy(lo.Filter(Commands, func(c Command, _ int) bool { return c.key != "" }),
	func(c Command) string { return c.key })
View Source
var CommandsByName = lo.KeyBy(Commands, func(c Command) string { return c.Name })

Functions

func ClipLines

func ClipLines(lines []string, style lipgloss.Style) []string

fit lines into w/h of style. Truncates both horizontally and vertically.

func FileExists

func FileExists(name string) bool

does file exist?

func IsInt

func IsInt(value Num) bool

is this Num an int?

func MapV

func MapV[E, F any](s []E, fn func(E) F) []F

map from one array to another https://github.com/samber/lo/issues/263

func Pop

func Pop[E any](s []E) (E, []E)

https://github.com/samber/lo/pull/588

func Push

func Push[E any](s []E, values ...E) []E

https://github.com/samber/lo/pull/588

func Reversed

func Reversed[E any](s []E) []E

return reversed copy of array. The lo one is mutable.

func Sequence

func Sequence(len int) []int

func Shift

func Shift[E any](s []E) (E, []E)

https://github.com/samber/lo/pull/588

func StyleBetweenStars

func StyleBetweenStars(str string, style lipgloss.Style) string

look for **xxx**, apply a style

func Truncate

func Truncate[E any](s []E, maxLen int) []E

Truncate an array

func TruncateStart

func TruncateStart[E any](s []E, maxLen int) []E

Truncate an array, but remove stuff from the start

Types

type Box

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

func NewBox

func NewBox(width, height int) Box

func (Box) Apply

func (box Box) Apply(style lipgloss.Style) lipgloss.Style

func (Box) Cols

func (box Box) Cols() (Box, Box)

func (Box) CutBottom

func (box Box) CutBottom(v int) (Box, Box)

func (Box) CutLeft

func (box Box) CutLeft(v int) (Box, Box)

func (Box) CutRight

func (box Box) CutRight(v int) (Box, Box)

func (Box) CutTop

func (box Box) CutTop(v int) (Box, Box)

func (Box) GetHeight

func (box Box) GetHeight() int

func (Box) GetWidth

func (box Box) GetWidth() int

func (Box) Height

func (box Box) Height(v int) Box

func (Box) Render

func (box Box) Render(style lipgloss.Style, str string) string

func (Box) Rows

func (box Box) Rows() (Box, Box)

func (Box) Size

func (box Box) Size() (int, int)

func (Box) Width

func (box Box) Width(v int) Box

type Calculator

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

func NewCalculator

func NewCalculator() *Calculator

func (*Calculator) AddHistory

func (c *Calculator) AddHistory(s string)

func (*Calculator) Clear

func (c *Calculator) Clear()

func (*Calculator) Empty

func (c *Calculator) Empty() bool

func (*Calculator) Enter

func (c *Calculator) Enter(value Num, explicit bool)

func (*Calculator) GetDisplay

func (c *Calculator) GetDisplay() []string

returns the 8 visible lines of the stack

func (*Calculator) GetHistory

func (c *Calculator) GetHistory() []string

func (*Calculator) GetStack

func (c *Calculator) GetStack() []Num

func (*Calculator) GetStackString

func (c *Calculator) GetStackString() []string

func (*Calculator) GetUndo

func (c *Calculator) GetUndo() [][]Num

func (*Calculator) History

func (c *Calculator) History() []string

func (*Calculator) Len

func (c *Calculator) Len() int

func (*Calculator) Peek

func (c *Calculator) Peek() Num

func (*Calculator) PeekFloat

func (c *Calculator) PeekFloat() float64

func (*Calculator) PeekInt

func (c *Calculator) PeekInt() int

func (*Calculator) Pop

func (c *Calculator) Pop() Num

func (*Calculator) PopFloat64

func (c *Calculator) PopFloat64() float64

func (*Calculator) PopInt

func (c *Calculator) PopInt() int

func (*Calculator) Push

func (c *Calculator) Push(values ...Num)

func (*Calculator) PushFloat64

func (c *Calculator) PushFloat64(values ...float64)

func (*Calculator) PushInt

func (c *Calculator) PushInt(values ...int)

func (*Calculator) Run

func (c *Calculator) Run(name string) error

func (*Calculator) SetHistory

func (c *Calculator) SetHistory(history []string)

func (*Calculator) SetStack

func (c *Calculator) SetStack(stack []Num)

func (*Calculator) SetStackString

func (c *Calculator) SetStackString(stack []string)

func (*Calculator) Undo

func (c *Calculator) Undo()

type Command

type Command struct {
	Name string
	// contains filtered or unexported fields
}

type Num

type Num = decimal.Decimal

func Factorial

func Factorial(x Num) Num

x!

func Ln

func Ln(x Num) Num

ln(x)

func Normalize

func Normalize(x Num) Num

if x seems to be an Int, round it

func Pow

func Pow(x, y Num) Num

Jump to

Keyboard shortcuts

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