MCPcopy Create free account
hub / github.com/antonmedv/gitmal / ParseBinaryFragmentHeader

Method ParseBinaryFragmentHeader

pkg/gitdiff/binary.go:75–101  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

73}
74
75func (p *parser) ParseBinaryFragmentHeader() (*BinaryFragment, error) {
76 parts := strings.SplitN(strings.TrimSuffix(p.Line(0), "\n"), " ", 2)
77 if len(parts) < 2 {
78 return nil, nil
79 }
80
81 frag := &BinaryFragment{}
82 switch parts[0] {
83 case "delta":
84 frag.Method = BinaryPatchDelta
85 case "literal":
86 frag.Method = BinaryPatchLiteral
87 default:
88 return nil, nil
89 }
90
91 var err error
92 if frag.Size, err = strconv.ParseInt(parts[1], 10, 64); err != nil {
93 nerr := err.(*strconv.NumError)
94 return nil, p.Errorf(0, "binary patch: invalid size: %v", nerr.Err)
95 }
96
97 if err := p.Next(); err != nil && err != io.EOF {
98 return nil, err
99 }
100 return frag, nil
101}
102
103func (p *parser) ParseBinaryChunk(frag *BinaryFragment) error {
104 // Binary fragments are encoded as a series of base85 encoded lines. Each

Callers 3

ParseBinaryFragmentsMethod · 0.95

Calls 3

LineMethod · 0.95
ErrorfMethod · 0.95
NextMethod · 0.95

Tested by 2