Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Closer

A minimal Go utility for safe resource cleanup with integrated logging and panic options.

Installation

go get github.com/penkovgd/closer

Usage

import (
    "log/slog"
    "os"
    "github.com/penkovgd/closer"
)

func main() {
    logger := slog.New(slog.NewTextHandler(os.Stdout, nil))

    file, err := os.Open("data.txt")
    if err != nil {
        panic(err)
    }
    defer closer.CloseOrLog(logger, file)

    // For critical resources that must close successfully
    criticalResource := acquireResource()
    defer closer.CloseOrPanic(logger, criticalResource)
}

Functions

CloseOrLog(log *slog.Logger, closer io.Closer)

Closes the resource and logs any error using the provided logger. Safe for deferred calls.

CloseOrPanic(log *slog.Logger, closer io.Closer)

Closes the resource and panics if an error occurs. Use for critical resources where failed closure is unrecoverable.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages