Skip to content

go-sqlt/structscan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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