From bebf1cd5fc4668b7970e3e2e426ad103ecbc670c Mon Sep 17 00:00:00 2001 From: diogo464 Date: Fri, 8 Aug 2025 17:40:19 +0100 Subject: rust cli init --- path.go | 75 ----------------------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 path.go (limited to 'path.go') diff --git a/path.go b/path.go deleted file mode 100644 index bb81229..0000000 --- a/path.go +++ /dev/null @@ -1,75 +0,0 @@ -package main - -import ( - "fmt" - "strings" -) - -type PathComponent string - -type Path []PathComponent - -func NewPathComponent(s string) (PathComponent, error) { - if s != strings.TrimSpace(s) { - return PathComponent(""), fmt.Errorf("path component cannot contain leading or trailing spaces") - } - if strings.Contains(s, "/") { - return PathComponent(""), fmt.Errorf("path component cannot contain '/'") - } - if len(s) == 0 { - return PathComponent(""), fmt.Errorf("path component cannot be empty") - } - return PathComponent(s), nil -} - -func (c PathComponent) String() string { - return string(c) -} - -func (p Path) Components() []PathComponent { - return []PathComponent(p) -} - -func (p Path) Parent() Path { - components := []PathComponent(p) - if len(components) == 0 { - return Path(components) - } else { - return Path(components[:len(components)-1]) - } -} - -func (p Path) IsRoot() bool { - return len(p.Components()) == 0 -} - -func ParsePath(pathStr string) (Path, error) { - if pathStr == "" || pathStr == "/" { - return Path{}, nil - } - - if !strings.HasPrefix(pathStr, "/") { - return nil, fmt.Errorf("path must be absolute, got: %s", pathStr) - } - - pathStr = strings.TrimPrefix(pathStr, "/") - if len(pathStr) == 0 { - return Path{}, nil - } - - parts := strings.Split(pathStr, "/") - components := make([]PathComponent, 0, len(parts)) - - for _, part := range parts { - if len(part) == 0 { - return nil, fmt.Errorf("empty path component in: %s", pathStr) - } - component, err := NewPathComponent(part) - if err != nil { - return nil, fmt.Errorf("invalid path component '%s': %w", part, err) - } - components = append(components, component) - } - - return Path(components), nil -} -- cgit