47 lines
657 B
Go
47 lines
657 B
Go
// Copyright (c) 2024-2026 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// file.go
|
|
package file
|
|
|
|
import (
|
|
"os"
|
|
|
|
"git.portale-stac.it/go-pkg/expr/kern"
|
|
)
|
|
|
|
type Handle interface {
|
|
kern.Typer
|
|
GetFile() *os.File
|
|
GetName() string
|
|
Valid() bool
|
|
Close() error
|
|
}
|
|
|
|
type handleBase struct {
|
|
fh *os.File
|
|
}
|
|
|
|
func (h *handleBase) GetFile() *os.File {
|
|
return h.fh
|
|
}
|
|
|
|
func (h *handleBase) GetName() (name string) {
|
|
if h.fh != nil {
|
|
name = h.fh.Name()
|
|
}
|
|
return
|
|
}
|
|
|
|
func (h *handleBase) Valid() bool {
|
|
return h.fh != nil
|
|
}
|
|
|
|
func (h *handleBase) Close() (err error) {
|
|
if h.fh != nil {
|
|
err = h.fh.Close()
|
|
h.fh = nil
|
|
}
|
|
return
|
|
}
|