1
0
Fork 0
golang-forgejo-f3-gof3/path/interface.go
Daniel Baumann 03bfe4079e
Adding upstream version 3.10.8.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-18 09:37:23 +02:00

51 lines
978 B
Go

// Copyright Earl Warren <contact@earl-warren.org>
// Copyright Loïc Dachary <loic@dachary.org>
// SPDX-License-Identifier: MIT
package path
import (
"code.forgejo.org/f3/gof3/v3/f3"
"code.forgejo.org/f3/gof3/v3/id"
"code.forgejo.org/f3/gof3/v3/kind"
)
type PathElementAllocator func() PathElement
type PathElement interface {
SetID(id.NodeID)
GetID() id.NodeID
SetMappedID(id.NodeID)
GetMappedID() id.NodeID
SetKind(kind kind.Kind)
GetKind() kind.Kind
ToFormat() f3.Interface
}
type Path interface {
Length() int
PathString() PathString
PathMappedString() PathString
String() string
ReadablePathString() PathString
ReadableString() string
Append(child PathElement) Path
RemoveFirst() Path
PopFirst() (PathElement, Path)
Pop() (PathElement, Path)
RemoveLast() Path
Empty() bool
First() PathElement
Last() PathElement
All() []PathElement
}
type PathString interface {
Empty() bool
Join() string
Append(element string)
Elements() []string
}