Skip to content

Commit 4f39cff

Browse files
committed
feat: adds new methods ReadFrom, ReadFromPath, WriteTo and WriteToPath
1 parent 2dbafa3 commit 4f39cff

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

path.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,27 @@ func (p Path) ReadFile() ([]byte, error) {
249249
return os.ReadFile(string(p))
250250
}
251251

252+
func (p Path) ReadFrom(r io.Reader) error {
253+
dest, err := p.Create()
254+
if err != nil {
255+
return err
256+
}
257+
defer dest.Close()
258+
259+
_, err = dest.ReadFrom(r)
260+
return err
261+
}
262+
263+
func (p Path) ReadFromPath(p2 Path) error {
264+
src, err := p2.Open()
265+
if err != nil {
266+
return err
267+
}
268+
defer src.Close()
269+
270+
return p.ReadFrom(src)
271+
}
272+
252273
func (p Path) WriteFile(data []byte) error {
253274
if p.IsDir() {
254275
return errors.New("can not write to a directory")
@@ -259,6 +280,27 @@ func (p Path) WriteFile(data []byte) error {
259280
return os.WriteFile(string(p), data, 0o644)
260281
}
261282

283+
func (p Path) WriteTo(w io.Writer) error {
284+
src, err := p.Open()
285+
if err != nil {
286+
return err
287+
}
288+
defer src.Close()
289+
290+
_, err = src.WriteTo(w)
291+
return err
292+
}
293+
294+
func (p Path) WriteToPath(p2 Path) error {
295+
dest, err := p2.Create()
296+
if err != nil {
297+
return err
298+
}
299+
defer dest.Close()
300+
301+
return p.WriteTo(dest)
302+
}
303+
262304
func (p Path) IsAbs() bool {
263305
return filepath.IsAbs(string(p))
264306
}

0 commit comments

Comments
 (0)