MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / NewPartialRangesFromData

Function NewPartialRangesFromData

internal/caches/partial_ranges.go:28–56  ·  view source on GitHub ↗

NewPartialRangesFromData 从数据中解析范围

(data []byte)

Source from the content-addressed store, hash-verified

26
27// NewPartialRangesFromData 从数据中解析范围
28func NewPartialRangesFromData(data []byte) (*PartialRanges, error) {
29 var rs = NewPartialRanges(0)
30 for {
31 var index = bytes.IndexRune(data, '\n')
32 if index < 0 {
33 break
34 }
35 var line = data[:index]
36 var colonIndex = bytes.IndexRune(line, ':')
37 if colonIndex > 0 {
38 switch string(line[:colonIndex]) {
39 case "v": // 版本号
40 rs.Version = types.Int(line[colonIndex+1:])
41 case "b": // 总长度
42 rs.BodySize = types.Int64(line[colonIndex+1:])
43 case "r": // 范围信息
44 var commaIndex = bytes.IndexRune(line, ',')
45 if commaIndex > 0 {
46 rs.Ranges = append(rs.Ranges, [2]int64{types.Int64(line[colonIndex+1 : commaIndex]), types.Int64(line[commaIndex+1:])})
47 }
48 }
49 }
50 data = data[index+1:]
51 if len(data) == 0 {
52 break
53 }
54 }
55 return rs, nil
56}
57
58// NewPartialRangesFromJSON 从JSON中解析范围
59func NewPartialRangesFromJSON(data []byte) (*PartialRanges, error) {

Calls 1

NewPartialRangesFunction · 0.85

Tested by 3