Versions in this module Expand all Collapse all v0 v0.0.0 Feb 18, 2026 Changes in this version + func BottomUpFilteredI[I, A, RET, RW, DIR, ERR any, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func BottomUpFiltered[I, A, RET, RW, DIR, ERR, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], pred Predicate[A, ERRP]) ... + func BottomUp[I, A any, RET, RW, DIR, ERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR]) Optic[*PathNode[I], A, A, A, A, ReturnMany, RW, UniDir, ERR] + func BreadthFirstFilteredI[I, A, RET, RW, DIR, ERR any, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func BreadthFirstFiltered[I, A, RET, RW, DIR, ERR, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], pred Predicate[A, ERRP]) ... + func BreadthFirst[I, A any, RET, RW, DIR, ERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR]) Optic[*PathNode[I], A, A, A, A, ReturnMany, ReadOnly, UniDir, ERR] + func DiffTreeI[I, J, A any, RET TReturnOne, RW, DIR, ERR any, DRET TReturnOne, ERRI TPure](right mo.Option[A], ...) ... + func DiffTreeT2I[I, J, A any, RET TReturnOne, RW, DIR, ERR any, DRET TReturnOne, ERRI TPure](...) ... + func DiffTreeT2[I, J, A any, RET TReturnOne, RW any, DIR any, ERR any, DRET TReturnOne, ...](...) ... + func DiffTree[I, J, A any, RET TReturnOne, RW any, DIR any, ERR any, DRET TReturnOne, ...](right mo.Option[A], ...) ... + func EqPathT2[I any, ERR TPure](eq Predicate[lo.Tuple2[I, I], ERR]) ... + func EqPath[I any, ERR TPure](right *PathNode[I], eq Predicate[lo.Tuple2[I, I], ERR]) ... + func EqTreeI[I, A, ERR any, PERR, IERR TPure](right TreeNode[I, A, ERR], ixMatch Predicate[lo.Tuple2[I, I], PERR], ...) ... + func EqTreeT2I[I, A, ERR any, IERR, PERR TPure](ixMatch Predicate[lo.Tuple2[I, I], IERR], eq Predicate[lo.Tuple2[A, A], PERR]) ... + func EqTreeT2[I comparable, A, ERR any, PERR TPure](eq Predicate[lo.Tuple2[A, A], PERR]) ... + func EqTree[I comparable, A, ERR any, PERR TPure](right TreeNode[I, A, ERR], eq Predicate[lo.Tuple2[A, A], PERR]) ... + func MergeTreeT2[I, J, A, RET, SRET any, RW any, SRW ReadWrite, DIR, SDIR, ERR, SERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func MergeTree[I, J, A, RET, SRET any, RW any, SRW ReadWrite, DIR, SDIR, ERR, SERR any](right A, children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func OTreeFromI[X any, I any, J any, S any, T any, RET any, RW any, DIR any, ERR any](...) *lTree[X, I, J, S, T, RET, RW, DIR, ERR] + func OTreeFrom[X any, I comparable, J any, S any, T any, RET any, RW any, DIR any, ERR any](...) *lTree[X, I, J, S, T, RET, RW, DIR, ERR] + func OTreeI[I any, X, ERR any](ixmatch func(a, b I) bool) ... + func OTreeOptFromI[X any, I any, J any, S any, T any, RET any, RW any, DIR any, ERR any](...) *loTree[X, I, J, S, T, RET, RW, DIR, ERR] + func OTreeOptFrom[X any, I comparable, J any, S any, T any, RET any, RW any, DIR any, ERR any](...) *loTree[X, I, J, S, T, RET, RW, DIR, ERR] + func OTreeOptI[I any, X, ERR any](ixmatch func(a, b I) bool) ... + func OTreeOpt[I comparable, X, ERR any]() ... + func OTree[I comparable, X, ERR any]() ... + func PathValue[I any]() ... + func ReIndexedTreeP[A, B, I, J, L any, IRET TReturnOne, IRW any, IDIR any, ERR any](ixmap Optic[L, I, I, J, J, IRET, IRW, IDIR, ERR], ixmatch func(I, I) bool, ...) ... + func ReIndexedTree[A any, I comparable, J comparable, L any, IRET TReturnOne, IRW any, IDIR any, ...](ixmap Optic[L, I, I, J, J, IRET, IRW, IDIR, ERR]) ... + func ResolvePath[I, A, RET, RW, DIR, ERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], resolvePath *PathNode[I]) Optic[*PathNode[I], A, A, A, A, ReturnMany, ReadWrite, UniDir, ERR] + func RewriteI[I, A, RET any, RW TReadWrite, DIR, ERR any, ORET TReturnOne, OERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func RewriteOpE[A any](rewriteHandler func(ctx context.Context, node A) (A, bool, error)) ... + func RewriteOpIE[I, A any](...) ... + func RewriteOpI[I, A any](rewriteHandler func(index *PathNode[I], node A) (A, bool)) ... + func RewriteOp[A any](rewriteHandler func(node A) (A, bool)) ... + func Rewrite[I, A, RET any, RW TReadWrite, DIR, ERR any, ORET TReturnOne, OERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func TopDownFilteredI[I, A, RET, RW, DIR, ERR any, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], ...) ... + func TopDownFiltered[I, A, RET, RW, DIR, ERR, ERRP any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR], pred Predicate[A, ERRP]) ... + func TopDownMatchI[I, S, RET any, RW any, DIR any, ERR, MERR any](children Optic[I, S, S, S, S, RET, RW, DIR, ERR], ...) Optic[*PathNode[I], S, S, S, S, ReturnMany, RW, UniDir, ERR] + func TopDownMatch[I, S, RET any, RW any, DIR any, ERR, MERR any](children Optic[I, S, S, S, S, RET, RW, DIR, ERR], matcher Predicate[S, MERR]) Optic[*PathNode[I], S, S, S, S, ReturnMany, RW, UniDir, ERR] + func TopDown[I, A any, RET, RW, DIR, ERR any](children Optic[I, A, A, A, A, RET, RW, DIR, ERR]) Optic[*PathNode[I], A, A, A, A, ReturnMany, RW, UniDir, ERR] + func TraversePath[I any]() ... + func TraverseTreeChildrenI[I, A, ERR any](ixmatch func(a, b I) bool) ... + func TraverseTreeChildrenP[I, A, B any, ERR any, PERR TPure](ixMatch Predicate[lo.Tuple2[I, I], PERR]) ... + func TraverseTreeChildren[I comparable, A, ERR any]() ... + func TreeChildren[I, A, ERR any]() ... + func TreeValue[I, A, ERR any]() ... + func WithChildPathI[I, S, A any, RET any, RW, DIR, ERR any](...) ... + func WithChildPath[I comparable, S, A any, RET any, RW, DIR, ERR any](...) ... + type PathNode struct + func Path[I any](indices ...I) *PathNode[I] + func (p *PathNode[I]) Append(i I) *PathNode[I] + func (p *PathNode[I]) IxMatch(ixMatch func(indexA, indexB I) bool, other *PathNode[I]) bool + func (p *PathNode[I]) Parent() *PathNode[I] + func (p *PathNode[I]) Slice() []I + func (p *PathNode[I]) String() string + func (p *PathNode[I]) Value() I + type TreeNode struct + func TreeE[T any](value T, children ...Collection[int, TreeNode[int, T, Err], Err]) TreeNode[int, T, Err] + func TreeIE[I any, T any, ERR any](value T, ixMatch func(a, b I) bool, ...) TreeNode[I, T, ERR] + func TreeI[I any, T any](value T, ixMatch func(a, b I) bool, ...) TreeNode[I, T, Pure] + func Tree[T any](value T, children ...Collection[int, TreeNode[int, T, Pure], Pure]) TreeNode[int, T, Pure] + func (r *TreeNode[I, T, ERR]) MarshalJSON() ([]byte, error) + func (r *TreeNode[I, T, ERR]) UnmarshalJSON(data []byte) error + func (r TreeNode[I, T, ERR]) String() string