stats

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BigramLatency

type BigramLatency struct {
	Bigram    string
	LatencyMs int64
}

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
	PBWPM              float64 // Personal Best WPM
	PBSamples          []float64
	PBGhostCursorIdx   int  // Position of Personal Best Ghost
	StopOnError        bool // Stop-on-Error mode
	SuddenDeath        bool // Sudden Death mode
	RunBigramLatencies []BigramLatency
	MissedKeysMap      map[rune]int
}

Tracker handles real-time typing metrics, latency tracking, Ghost Pacer, and PB replay.

func NewTracker

func NewTracker(targetText string, durationSec int, targetWPM float64, stopOnError bool, suddenDeath bool) *Tracker

NewTracker creates a new typing tracker.

func (*Tracker) Backspace

func (t *Tracker) Backspace()

Backspace handles deleting character.

func (*Tracker) CalculateAccuracy

func (t *Tracker) CalculateAccuracy() float64

func (*Tracker) CalculateConsistency

func (t *Tracker) CalculateConsistency() float64

func (*Tracker) CalculateGrossWPM added in v1.0.2

func (t *Tracker) CalculateGrossWPM() float64

GrossWPM: (Total Keystrokes / 5) / Elapsed Minutes

func (*Tracker) CalculateRawWPM

func (t *Tracker) CalculateRawWPM() float64

func (*Tracker) CalculateWPM

func (t *Tracker) CalculateWPM() float64

NetWPM: Gross WPM - (Uncorrected Errors / Elapsed Minutes)

func (*Tracker) CountCorrectChars

func (t *Tracker) CountCorrectChars() int

CountCorrectChars returns count of correct characters currently on board.

func (*Tracker) ElapsedSeconds

func (t *Tracker) ElapsedSeconds() float64

ElapsedSeconds returns time spent typing.

func (*Tracker) Finish

func (t *Tracker) Finish()

Finish concludes session.

func (*Tracker) RecordRune

func (t *Tracker) RecordRune(r rune)

RecordRune processes typed character input.

func (*Tracker) RemainingSeconds

func (t *Tracker) RemainingSeconds() int

RemainingSeconds returns countdown timer seconds left.

func (*Tracker) SampleWPM

func (t *Tracker) SampleWPM()

func (*Tracker) Start

func (t *Tracker) Start()

Start begins tracking time on the first keypress.

func (*Tracker) UpdateGhostPacer

func (t *Tracker) UpdateGhostPacer()

UpdateGhostPacer updates position of Target Ghost & PB Ghost.

Jump to

Keyboard shortcuts

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