MCPcopy Create free account
hub / github.com/bodgit/sevenzip / Close

Method Close

reader.go:121–145  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

119}
120
121func (fr *fileReader) Close() error {
122 if fr.rc == nil {
123 return nil
124 }
125
126 offset, err := fr.rc.Seek(0, io.SeekCurrent)
127 if err != nil {
128 return fmt.Errorf("sevenzip: error seeking current position: %w", err)
129 }
130
131 if offset == fr.rc.Size() { // EOF reached
132 if err := fr.rc.Close(); err != nil {
133 return fmt.Errorf("sevenzip: error closing: %w", err)
134 }
135 } else {
136 f := fr.f
137 if _, err := f.zip.pool[f.folder].Put(offset, fr.rc); err != nil {
138 return fmt.Errorf("sevenzip: error adding to pool: %w", err)
139 }
140 }
141
142 fr.rc = nil
143
144 return nil
145}
146
147// Open returns an [io.ReadCloser] that provides access to the [File]'s
148// contents. Multiple files may be read concurrently.

Callers

nothing calls this directly

Calls 4

SizeMethod · 0.65
PutMethod · 0.65
SeekMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected