From 5174aa0023b3661ddeb6c8fb7c071eea3946a0e4 Mon Sep 17 00:00:00 2001 From: Jack Christensen Date: Wed, 28 Dec 2022 09:20:49 -0600 Subject: [PATCH] Update example usage in README.md --- README.md | 62 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 29fbcc8..7086b09 100644 --- a/README.md +++ b/README.md @@ -22,31 +22,45 @@ own. ## Example Usage ```go -constructor := func(context.Context) (net.Conn, error) { - return net.Dial("tcp", "127.0.0.1:8080") +package main + +import ( + "context" + "log" + "net" + + "github.com/jackc/puddle/v2" +) + +func main() { + constructor := func(context.Context) (net.Conn, error) { + return net.Dial("tcp", "127.0.0.1:8080") + } + destructor := func(value net.Conn) { + value.Close() + } + maxPoolSize := int32(10) + + pool, err := puddle.NewPool(&puddle.Config[net.Conn]{Constructor: constructor, Destructor: destructor, MaxSize: maxPoolSize}) + if err != nil { + log.Fatal(err) + } + + // Acquire resource from the pool. + res, err := pool.Acquire(context.Background()) + if err != nil { + log.Fatal(err) + } + + // Use resource. + _, err = res.Value().Write([]byte{1}) + if err != nil { + log.Fatal(err) + } + + // Release when done. + res.Release() } -destructor := func(value net.Conn) { - value.Close() -} -maxPoolSize := 10 - -pool := puddle.NewPool[net.Conn](&puddle.Config[int]{Constructor: constructor, Destructor: destructor, MaxSize: maxPoolSize}) - -// Acquire resource from the pool. -res, err := pool.Acquire(context.Background()) -if err != nil { - // ... -} - -// Use resource. -_, err = res.Value().Write([]byte{1}) -if err != nil { - // ... -} - -// Release when done. -res.Release() - ``` ## Status