MCPcopy
hub / github.com/wavetermdev/waveterm / ParseByteRange

Function ParseByteRange

pkg/util/fileutil/fileutil.go:29–52  ·  view source on GitHub ↗
(rangeStr string)

Source from the content-addressed store, hash-verified

27}
28
29func ParseByteRange(rangeStr string) (ByteRangeType, error) {
30 if rangeStr == "" {
31 return ByteRangeType{All: true}, nil
32 }
33 // handle open-ended range "N-"
34 if len(rangeStr) > 0 && rangeStr[len(rangeStr)-1] == '-' {
35 var start int64
36 _, err := fmt.Sscanf(rangeStr, "%d-", &start)
37 if err != nil || start < 0 {
38 return ByteRangeType{}, errors.New("invalid byte range")
39 }
40 return ByteRangeType{Start: start, OpenEnd: true}, nil
41 }
42 var start, end int64
43 _, err := fmt.Sscanf(rangeStr, "%d-%d", &start, &end)
44 if err != nil {
45 return ByteRangeType{}, errors.New("invalid byte range")
46 }
47 if start < 0 || end < 0 || start > end {
48 return ByteRangeType{}, errors.New("invalid byte range")
49 }
50 // End is inclusive (HTTP byte range semantics: bytes=0-999 means 1000 bytes)
51 return ByteRangeType{Start: start, End: end}, nil
52}
53
54func FixPath(path string) (string, error) {
55 origPath := path

Callers 2

Calls

no outgoing calls

Tested by

no test coverage detected