diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2021-07-28 18:21:52 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2021-07-28 14:21:52 -0700 |
| commit | 22c599abc18895f73e96095f35b71cf3357d41b4 (patch) | |
| tree | 482ef57d386c955692ea43c43e4655b3c3763499 /file_path.go | |
| parent | 71c56068adca18f76ebee86355f000a3e51d3127 (diff) | |
Move code to hotline dir
Diffstat (limited to 'file_path.go')
| -rw-r--r-- | file_path.go | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/file_path.go b/file_path.go deleted file mode 100644 index 71168dc..0000000 --- a/file_path.go +++ /dev/null @@ -1,56 +0,0 @@ -package hotline - -import ( - "encoding/binary" - "strings" -) - -const pathSeparator = "/" // File path separator TODO: make configurable to support Windows - -// FilePathItem represents the file or directory portion of a delimited file path (e.g. foo and bar in "/foo/bar") -// 00 00 -// 09 -// 73 75 62 66 6f 6c 64 65 72 // "subfolder" -type FilePathItem struct { - Len byte - Name []byte -} - -func NewFilePathItem(b []byte) FilePathItem { - return FilePathItem{ - Len: b[2], - Name: b[3:], - } -} - -type FilePath struct { - PathItemCount []byte - PathItems []FilePathItem -} - -func NewFilePath(b []byte) FilePath { - if b == nil { - return FilePath{} - } - - fp := FilePath{PathItemCount: b[0:2]} - - // number of items in the path - pathItemLen := binary.BigEndian.Uint16(b[0:2]) - pathData := b[2:] - for i := uint16(0); i < pathItemLen; i++ { - segLen := pathData[2] - fp.PathItems = append(fp.PathItems, NewFilePathItem(pathData[:segLen+3])) - pathData = pathData[3+segLen:] - } - - return fp -} - -func (fp *FilePath) String() string { - var out []string - for _, i := range fp.PathItems { - out = append(out, string(i.Name)) - } - return strings.Join(out, pathSeparator) -} |