aboutsummaryrefslogtreecommitdiffstats
path: root/src/dma/vendor/github.com/valyala/fasttemplate/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/dma/vendor/github.com/valyala/fasttemplate/README.md')
-rw-r--r--src/dma/vendor/github.com/valyala/fasttemplate/README.md85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/dma/vendor/github.com/valyala/fasttemplate/README.md b/src/dma/vendor/github.com/valyala/fasttemplate/README.md
new file mode 100644
index 00000000..3a4d56ce
--- /dev/null
+++ b/src/dma/vendor/github.com/valyala/fasttemplate/README.md
@@ -0,0 +1,85 @@
+fasttemplate
+============
+
+Simple and fast template engine for Go.
+
+Fasttemplate peforms only a single task - it substitutes template placeholders
+with user-defined values. At high speed :)
+
+Take a look at [quicktemplate](https://github.com/valyala/quicktemplate) if you need fast yet powerful html template engine.
+
+*Please note that fasttemplate doesn't do any escaping on template values
+unlike [html/template](http://golang.org/pkg/html/template/) do. So values
+must be properly escaped before passing them to fasttemplate.*
+
+Fasttemplate is faster than [text/template](http://golang.org/pkg/text/template/),
+[strings.Replace](http://golang.org/pkg/strings/#Replace),
+[strings.Replacer](http://golang.org/pkg/strings/#Replacer)
+and [fmt.Fprintf](https://golang.org/pkg/fmt/#Fprintf) on placeholders' substitution.
+
+Below are benchmark results comparing fasttemplate performance to text/template,
+strings.Replace, strings.Replacer and fmt.Fprintf:
+
+```
+$ go test -bench=. -benchmem
+PASS
+BenchmarkFmtFprintf-4 2000000 790 ns/op 0 B/op 0 allocs/op
+BenchmarkStringsReplace-4 500000 3474 ns/op 2112 B/op 14 allocs/op
+BenchmarkStringsReplacer-4 500000 2657 ns/op 2256 B/op 23 allocs/op
+BenchmarkTextTemplate-4 500000 3333 ns/op 336 B/op 19 allocs/op
+BenchmarkFastTemplateExecuteFunc-4 5000000 349 ns/op 0 B/op 0 allocs/op
+BenchmarkFastTemplateExecute-4 3000000 383 ns/op 0 B/op 0 allocs/op
+BenchmarkFastTemplateExecuteFuncString-4 3000000 549 ns/op 144 B/op 1 allocs/op
+BenchmarkFastTemplateExecuteString-4 3000000 572 ns/op 144 B/op 1 allocs/op
+BenchmarkFastTemplateExecuteTagFunc-4 2000000 743 ns/op 144 B/op 3 allocs/op
+```
+
+
+Docs
+====
+
+See http://godoc.org/github.com/valyala/fasttemplate .
+
+
+Usage
+=====
+
+```go
+ template := "http://{{host}}/?q={{query}}&foo={{bar}}{{bar}}"
+ t := fasttemplate.New(template, "{{", "}}")
+ s := t.ExecuteString(map[string]interface{}{
+ "host": "google.com",
+ "query": url.QueryEscape("hello=world"),
+ "bar": "foobar",
+ })
+ fmt.Printf("%s", s)
+
+ // Output:
+ // http://google.com/?q=hello%3Dworld&foo=foobarfoobar
+```
+
+
+Advanced usage
+==============
+
+```go
+ template := "Hello, [user]! You won [prize]!!! [foobar]"
+ t, err := fasttemplate.NewTemplate(template, "[", "]")
+ if err != nil {
+ log.Fatalf("unexpected error when parsing template: %s", err)
+ }
+ s := t.ExecuteFuncString(func(w io.Writer, tag string) (int, error) {
+ switch tag {
+ case "user":
+ return w.Write([]byte("John"))
+ case "prize":
+ return w.Write([]byte("$100500"))
+ default:
+ return w.Write([]byte(fmt.Sprintf("[unknown tag %q]", tag)))
+ }
+ })
+ fmt.Printf("%s", s)
+
+ // Output:
+ // Hello, John! You won $100500!!! [unknown tag "foobar"]
+```