document

package module
v0.0.9 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2023 License: MIT Imports: 3 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Apply

func Apply(peer, str string, repl []Replacement) string

func As added in v0.0.4

func As[T any](v any) T

func Isa added in v0.0.4

func Isa[T any](v any) bool

func OpString added in v0.0.8

func OpString(tree OpTree, verbose ...bool) string

func SplitNew added in v0.0.4

func SplitNew(tree OpTree, offset int) (OpTree, OpTree)

SplitNew the tree's new text at an offset

func SplitOld added in v0.0.4

func SplitOld(tree OpTree, offset int) (OpTree, OpTree)

split the tree's old text at an offset

func SplitOnMarker added in v0.0.3

func SplitOnMarker(tree OpTree, name string) (OpTree, OpTree)

Types

type Document added in v0.0.3

type Document struct {
	Ops OpTree
}

func NewDocument added in v0.0.4

func NewDocument(text ...string) *Document

func (*Document) Apply added in v0.0.3

func (d *Document) Apply(peer string, edits []Replacement)

func (*Document) Changes added in v0.0.8

func (d *Document) Changes(prefix string) string

func (*Document) Copy added in v0.0.3

func (d *Document) Copy() *Document

func (*Document) Edits added in v0.0.3

func (d *Document) Edits() []Replacement

append Edits that restore the original document

func (*Document) Freeze added in v0.0.3

func (d *Document) Freeze() *Document

func (*Document) Merge added in v0.0.3

func (d *Document) Merge(b *Document)

Merge another version of the original document into this one

func (*Document) OpString added in v0.0.4

func (d *Document) OpString(verbose ...bool) string

func (*Document) OriginalString added in v0.0.3

func (d *Document) OriginalString() string

string for the original document

func (*Document) Replace added in v0.0.3

func (d *Document) Replace(peer string, start int, length int, str string)

func (*Document) ReverseEdits added in v0.0.3

func (d *Document) ReverseEdits() []Replacement

append edits that restore the original document

func (*Document) Simplify added in v0.0.8

func (d *Document) Simplify()

func (*Document) SplitOnMarker added in v0.0.3

func (d *Document) SplitOnMarker(name string) (OpTree, OpTree)

func (*Document) String added in v0.0.3

func (d *Document) String() string

string for the new document

type InsertOp added in v0.0.5

type InsertOp struct {
	Peer string // used for ordering
	Text string
}

func (*InsertOp) GetText added in v0.0.5

func (i *InsertOp) GetText() string

func (*InsertOp) Measure added in v0.0.5

func (i *InsertOp) Measure() Measure

func (*InsertOp) Merge added in v0.0.5

func (i *InsertOp) Merge(m *Merger) bool

func (*InsertOp) OpString added in v0.0.5

func (i *InsertOp) OpString(offset int, verbose ...bool) string

func (*InsertOp) String added in v0.0.5

func (i *InsertOp) String() string

type MarkerOp added in v0.0.5

type MarkerOp struct {
	Names Set[string]
}

func NewMarkerOp added in v0.0.8

func NewMarkerOp(names ...string) *MarkerOp

func (*MarkerOp) GetText added in v0.0.5

func (s *MarkerOp) GetText() string

func (*MarkerOp) Measure added in v0.0.5

func (s *MarkerOp) Measure() Measure

func (*MarkerOp) Merge added in v0.0.5

func (opA *MarkerOp) Merge(m *Merger) bool

func (*MarkerOp) OpString added in v0.0.5

func (s *MarkerOp) OpString(offset int, verbose ...bool) string

func (*MarkerOp) String added in v0.0.5

func (s *MarkerOp) String() string

type Measure added in v0.0.4

type Measure struct {
	OldLen  int
	NewLen  int
	Markers Set[string]
}

type Merger added in v0.0.8

type Merger struct {
	Doc          *Document
	Merged       []Operation
	PendingOps   []Operation
	PendingSkip  *strings.Builder
	OpA, OpB     Operation
	TreeA, TreeB ft.FingerTree[OpMeasurer, Operation, Measure]
}

type OpMeasurer added in v0.0.4

type OpMeasurer bool

func (OpMeasurer) Identity added in v0.0.4

func (m OpMeasurer) Identity() Measure

func (OpMeasurer) Measure added in v0.0.4

func (m OpMeasurer) Measure(op Operation) Measure

func (OpMeasurer) Sum added in v0.0.4

func (m OpMeasurer) Sum(a Measure, b Measure) Measure

type OpTree added in v0.0.6

func RemoveMarker added in v0.0.3

func RemoveMarker(tree OpTree, name string) OpTree

type Operation added in v0.0.4

type Operation interface {
	OpString(offset int, verbose ...bool) string
	GetText() string
	Measure() Measure
	Merge(m *Merger) bool
	fmt.Stringer
}

type Replacement

type Replacement struct {
	Offset int
	Length int
	Text   string
}

type RetainOp added in v0.0.4

type RetainOp struct {
	Text string
}

func (*RetainOp) GetText added in v0.0.4

func (r *RetainOp) GetText() string

func (*RetainOp) Measure added in v0.0.4

func (r *RetainOp) Measure() Measure

func (*RetainOp) Merge added in v0.0.4

func (r *RetainOp) Merge(m *Merger) bool

func (*RetainOp) OpString added in v0.0.4

func (r *RetainOp) OpString(offset int, verbose ...bool) string

func (*RetainOp) String added in v0.0.4

func (r *RetainOp) String() string

type Set added in v0.0.2

type Set[T comparable] map[T]bool

func NewSet added in v0.0.3

func NewSet[T comparable](elements ...T) Set[T]

func (Set[T]) Add added in v0.0.3

func (s Set[T]) Add(op T) Set[T]

func (Set[T]) Copy added in v0.0.4

func (s Set[T]) Copy() Set[T]

func (Set[T]) Has added in v0.0.3

func (s Set[T]) Has(op T) bool

func (Set[T]) IsEmpty added in v0.0.8

func (s Set[T]) IsEmpty() bool

func (Set[T]) Merge added in v0.0.3

func (s Set[T]) Merge(s2 Set[T]) Set[T]

func (Set[T]) ToSlice added in v0.0.8

func (s Set[T]) ToSlice() []T

func (Set[T]) Union added in v0.0.3

func (s Set[T]) Union(s2 Set[T]) Set[T]

type SkipOp added in v0.0.8

type SkipOp struct {
	Text string
}

func (*SkipOp) GetText added in v0.0.8

func (s *SkipOp) GetText() string

func (*SkipOp) Measure added in v0.0.8

func (s *SkipOp) Measure() Measure

func (*SkipOp) Merge added in v0.0.8

func (s *SkipOp) Merge(m *Merger) bool

func (*SkipOp) OpString added in v0.0.8

func (s *SkipOp) OpString(offset int, verbose ...bool) string

func (*SkipOp) String added in v0.0.8

func (s *SkipOp) String() string

Jump to

Keyboard shortcuts

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