Documentation
¶
Index ¶
- type BigramLatency
- type CharStatus
- type Tracker
- func (t *Tracker) Backspace()
- func (t *Tracker) CalculateAccuracy() float64
- func (t *Tracker) CalculateConsistency() float64
- func (t *Tracker) CalculateRawWPM() float64
- func (t *Tracker) CalculateWPM() float64
- func (t *Tracker) CountCorrectChars() int
- func (t *Tracker) ElapsedSeconds() float64
- func (t *Tracker) Finish()
- func (t *Tracker) RecordRune(r rune)
- func (t *Tracker) RemainingSeconds() int
- func (t *Tracker) SampleWPM()
- func (t *Tracker) Start()
- func (t *Tracker) UpdateGhostPacer()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BigramLatency ¶
type CharStatus ¶
type CharStatus int
const ( StatusUntyped CharStatus = iota StatusCorrect StatusIncorrect )
type Tracker ¶
type Tracker struct {
TargetText string
TargetRunes []rune
CharStates []CharStatus
CursorIdx int
StartTime time.Time
EndTime time.Time
LastKeyTime time.Time
LastKeyRune rune
IsStarted bool
IsFinished bool
TotalKeystrokes int
CorrectKeystrokes int
ErrorKeystrokes int
BackspaceCount int
WPMSamples []float64
DurationSec int
TargetWPM float64 // Ghost Pacer Target (0 = disabled)
GhostCursorIdx int // Position of Ghost Pacer
RunBigramLatencies []BigramLatency
MissedKeysMap map[rune]int
}
Tracker handles real-time typing metrics, latency tracking, and Ghost Pacer calculations.
func NewTracker ¶
NewTracker creates a new typing tracker initialized with target text, duration, and target WPM.
func (*Tracker) Backspace ¶
func (t *Tracker) Backspace()
Backspace handles deleting the previously typed character.
func (*Tracker) CalculateAccuracy ¶
CalculateAccuracy returns Accuracy percentage.
func (*Tracker) CalculateConsistency ¶
CalculateConsistency calculates WPM consistency percentage across samples.
func (*Tracker) CalculateRawWPM ¶
CalculateRawWPM returns Raw WPM: (total_typed_chars / 5) / elapsed_minutes.
func (*Tracker) CalculateWPM ¶
CalculateWPM returns Net WPM: (correct_chars / 5) / elapsed_minutes.
func (*Tracker) CountCorrectChars ¶
CountCorrectChars returns total correctly typed characters currently on the board.
func (*Tracker) ElapsedSeconds ¶
ElapsedSeconds calculates time spent typing.
func (*Tracker) RecordRune ¶
RecordRune processes typed character input and records latency.
func (*Tracker) RemainingSeconds ¶
RemainingSeconds returns countdown timer seconds left.
func (*Tracker) SampleWPM ¶
func (t *Tracker) SampleWPM()
SampleWPM appends current Net WPM to samples slice for graph plotting.
func (*Tracker) Start ¶
func (t *Tracker) Start()
Start begins tracking time on the first keystroke.
func (*Tracker) UpdateGhostPacer ¶
func (t *Tracker) UpdateGhostPacer()
UpdateGhostPacer updates position of the Ghost Pacer cursor.