1
0
Fork 0

Adding upstream version 3.10.8.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-18 09:37:23 +02:00
parent 37e9b6d587
commit 03bfe4079e
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
356 changed files with 28857 additions and 0 deletions

51
path/interface.go Normal file
View file

@ -0,0 +1,51 @@
// 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
}