Skip to content

go-sqlt/structscan

Repository files navigation

structscan

go.dev reference GitHub tag (latest SemVer) Coverage

structscan maps SQL rows to Go structs.

go get -u github.com/go-sqlt/structscan

Example

package main

import (
	"database/sql"
	"fmt"

	"github.com/go-sqlt/structscan"
	_ "modernc.org/sqlite"
)

type Dest struct {
	Total int64
	Bool  bool
}

func main() {
	schema := structscan.New[Dest](
		structscan.Scan[Dest]().String().Enum(
			structscan.Enum{String: "2", Int: 2},
		).MustTo("Total"),
		structscan.Scan[Dest]().String().TrimSpace().ParseBool().MustTo("Bool"),
	)

	db, err := sql.Open("sqlite", ":memory:")
	if err != nil {
		panic(err)
	}

	rows, err := db.Query(`SELECT '2', '    true '`)
	if err != nil {
		panic(err)
	}

	defer rows.Close()

	data, err := schema.One(rows)
	if err != nil {
		panic(err)
	}

	fmt.Println(data) // {2 true}
}

About

Go database/sql struct scanning utility.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages