pkg

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 1, 2023 License: MIT Imports: 6 Imported by: 3

Documentation

Overview

Package pkg is the public lib of SQLTemplate. SQLTemplate is a simple template engine for writing dynamic SQL queries.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewBindingEngine added in v0.12.0

func NewBindingEngine() bindingEngine

NewBindingEngine build a binding engine based on the default binding engine.

Types

type DefaultBindingEngine added in v0.12.0

type DefaultBindingEngine struct {
	// contains filtered or unexported fields
}

DefaultBindingEngine is a base engine to handle bindings (placeholder "?" for MySQL-like dbe). It can be oveload to provide other type if bindings (placeholder "$i" for PostgreSQL-like dbe).

func (*DefaultBindingEngine) SetPlaceholderFunc added in v0.12.0

func (b *DefaultBindingEngine) SetPlaceholderFunc(placeholderfunc placeholderFunc)

SetPlaceholderFunc allows to set custom placeholder function.

type Option

type Option func(*templateEngine)

Option definition.

func WithBindingEngine added in v0.12.0

func WithBindingEngine(bEngine bindingEngine) Option

WithBindingEngine creates an Option func to set custom binding engine. nolint:deadcode

func WithPlaceholderFunc added in v0.12.0

func WithPlaceholderFunc(placeholderfunc placeholderFunc) Option

WithPlaceholderFunc creates an Option func to set custom placeholder function. nolint:deadcode

func WithTemplateFunctions

func WithTemplateFunctions(funcMap txtTemplate.FuncMap) Option

WithTemplateFunctions creates an Option func to set template functions. nolint:deadcode

type QueryTemplate

type QueryTemplate = Template

QueryTemplate is for backwards compatibility. Deprecated: use Template.

type QueryTemplateEngine

type QueryTemplateEngine = TemplateEngine

QueryTemplateEngine is for backwards compatibility. Deprecated: use TemplateEngine.

type Template added in v0.13.0

type Template interface {
	// GetQuery returns the query containing named values.
	GetQuery() string
	// GetParams returns the values in order.
	GetParams() []interface{}
}

Template is the interface implemented by types that holds the parsed template sql context.

type TemplateEngine added in v0.13.0

type TemplateEngine interface {
	// Parse parses a sql template and returns the 'Template'.
	Parse(namespace string, templateName string) (Template, error)
	// ParseWithValuesFromMap parses a sql template with values from a map and returns the 'Template'.
	ParseWithValuesFromMap(namespace string, templateName string, parameters map[string]interface{}) (Template, error)
	// ParseWithValuesFromStruct parses a sql template with values from a struct and returns the 'Template'.
	ParseWithValuesFromStruct(namespace string, templateName string, parameters interface{}) (Template, error)
	// Register registers a new namespace by template filesystem and extension.
	Register(namespace string, filesystem fs.FS, extensions string) error
}

TemplateEngine is the interface implemented by types that can parse sql templates.

func NewQueryTemplateEngine deprecated

func NewQueryTemplateEngine(options ...Option) TemplateEngine

Deprecated: use NewTemplateEngine.

func NewTemplateEngine added in v0.13.0

func NewTemplateEngine(options ...Option) TemplateEngine

NewTemplateEngine returns a new instance of 'TemplateEngine'.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL