From d9f6c6a9761ee1a075c083dd1077b0f4fa935b29 Mon Sep 17 00:00:00 2001 From: Lucas Merquior <96875650+lucmq@users.noreply.github.com> Date: Tue, 11 Jun 2024 18:26:01 -0300 Subject: [PATCH] Update documentation (#3) * Update documentation * Update README.md --- README.md | 6 +++--- driver/README.md | 10 +++++----- driver/db/badger/db.go | 6 +++++- driver/db/bbolt/db.go | 6 +++++- driver/db/bolt/db.go | 6 +++++- driver/db/diskv/db.go | 2 +- driver/encoding/msgpack/msgpack.go | 4 ++-- driver/test/db.go | 1 + 8 files changed, 27 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ab02000..9999ec5 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ go get github.com/lucmq/go-shelve ``` ## Usage -Here are some basic examples of how to use `go-shelve`: +Here are some examples of how to use `go-shelve`: ### Basic The following example illustrates the usage of a `Shelf` with string keys and @@ -56,7 +56,7 @@ func main() { // Use the database shelf.Put("language", "Go") - shelf.Put("module", "go-shelve") + shelf.Put("module", "Go-Shelve") // Note: Saved values will be available between restarts value, ok, _ := shelf.Get("language") @@ -109,7 +109,7 @@ func main() { // Use the database shelf.Put("language", "Go") - shelf.Put("module", "go-shelve") + shelf.Put("module", "Go-Shelve") value, ok, _ := shelf.Get("language") fmt.Println(value, ok) diff --git a/driver/README.md b/driver/README.md index 147eb0b..24f6941 100644 --- a/driver/README.md +++ b/driver/README.md @@ -4,10 +4,10 @@ codecs, meant to be used as part of the go-shelve project. ### Databases: #### Supported: -- Bolt -- BBolt -- Badger -- Diskv +- [Bolt](https://pkg.go.dev/github.com/lucmq/go-shelve/driver/db/bolt) +- [BBolt](https://pkg.go.dev/github.com/lucmq/go-shelve/driver/db/bboltd) +- [Badger](https://pkg.go.dev/github.com/lucmq/go-shelve/driver/db/badger) +- [Diskv](https://pkg.go.dev/github.com/lucmq/go-shelve/driver/db/diskv) #### Beta: - None @@ -19,7 +19,7 @@ codecs, meant to be used as part of the go-shelve project. ### Codecs: #### Supported: -- MessagePack +- [MessagePack](https://pkg.go.dev/github.com/lucmq/go-shelve/driver/encoding/msgpack) ### Beta - None diff --git a/driver/db/badger/db.go b/driver/db/badger/db.go index c7f2086..a07f9bb 100644 --- a/driver/db/badger/db.go +++ b/driver/db/badger/db.go @@ -7,14 +7,18 @@ import ( "slices" "github.com/dgraph-io/badger/v3" + "github.com/lucmq/go-shelve/shelve" ) -// Store is a BadgerDB driver for go-shelve/Shelf. +// Store is a BadgerDB driver for [shelve.Shelf]. type Store struct { db *badger.DB valueCopy copyFunc } +// Assert Store implements shelve.DB +var _ shelve.DB = (*Store)(nil) + type copyFunc func(item *badger.Item, dest []byte) ([]byte, error) // New creates a new BadgerDB store. diff --git a/driver/db/bbolt/db.go b/driver/db/bbolt/db.go index 1e0d05e..78efaea 100644 --- a/driver/db/bbolt/db.go +++ b/driver/db/bbolt/db.go @@ -5,15 +5,19 @@ import ( "fmt" "os" + "github.com/lucmq/go-shelve/shelve" "go.etcd.io/bbolt" ) -// Store is a BoltDB driver for go-shelve/Shelf. +// Store is a BoltDB driver for [shelve.Shelf]. type Store struct { db *bbolt.DB bucket []byte } +// Assert Store implements shelve.DB +var _ shelve.DB = (*Store)(nil) + // New creates a new BoltDB store. The bucket is created if it doesn't exist. func New(db *bbolt.DB, bucket []byte) (*Store, error) { err := db.Update(func(tx *bbolt.Tx) error { diff --git a/driver/db/bolt/db.go b/driver/db/bolt/db.go index e2f1582..5ff9fb3 100644 --- a/driver/db/bolt/db.go +++ b/driver/db/bolt/db.go @@ -6,14 +6,18 @@ import ( "os" "github.com/boltdb/bolt" + "github.com/lucmq/go-shelve/shelve" ) -// Store is a BoltDB driver for go-shelve/Shelf. +// Store is a BoltDB driver for [shelve.Shelf]. type Store struct { db *bolt.DB bucket []byte } +// Assert Store implements shelve.DB +var _ shelve.DB = (*Store)(nil) + // New creates a new BoltDB store. The bucket is created if it doesn't exist. func New(db *bolt.DB, bucket []byte) (*Store, error) { err := db.Update(func(tx *bolt.Tx) error { diff --git a/driver/db/diskv/db.go b/driver/db/diskv/db.go index c2c92c2..9379aa3 100644 --- a/driver/db/diskv/db.go +++ b/driver/db/diskv/db.go @@ -47,7 +47,7 @@ type IndexLen interface { Len() int } -// Store is a shelve.DB driver backed by a diskv.Diskv instance. +// Store is a [shelve.DB] driver backed by a diskv.Diskv instance. type Store struct { db *diskv.Diskv diff --git a/driver/encoding/msgpack/msgpack.go b/driver/encoding/msgpack/msgpack.go index 79c6956..5e108e2 100644 --- a/driver/encoding/msgpack/msgpack.go +++ b/driver/encoding/msgpack/msgpack.go @@ -7,7 +7,7 @@ import ( "github.com/lucmq/go-shelve/shelve" ) -// Codec is a codec for msgpack. Codec implements the shelve.Codec interface. +// Codec is a [shelve.Codec] driver for msgpack. type Codec struct{} // Assert Codec implements shelve.Codec @@ -18,7 +18,7 @@ func NewDefault() *Codec { return &Codec{} } -// Encode returns the msgpack Codec encoding of v as a byte slice. +// Encode returns the msgpack encoding of v as a byte slice. func (e *Codec) Encode(value any) ([]byte, error) { return msgpack.Marshal(value) } diff --git a/driver/test/db.go b/driver/test/db.go index 960a9e4..3f1e5d7 100644 --- a/driver/test/db.go +++ b/driver/test/db.go @@ -6,6 +6,7 @@ import ( "github.com/lucmq/go-shelve/shelve" ) +// TestError is the error used in tests. var TestError = errors.New("test error") // TDB matches the shelve.DB interface.