aboutsummaryrefslogtreecommitdiff
path: root/var.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-11 20:12:23 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-11 20:12:23 +0900
commit39728f19a1cfdc3864e0ec8e197e7d0b0289e338 (patch)
treef84aad695f4d913dd3f4d3a2f107018b2f42d3d1 /var.go
parentc88618fb139ec02a4d9ac0992fd5477775be6fb0 (diff)
Use []byte instead of string for SimpleVar
Diffstat (limited to 'var.go')
-rw-r--r--var.go13
1 files changed, 6 insertions, 7 deletions
diff --git a/var.go b/var.go
index 1bb93d2..0fa03f7 100644
--- a/var.go
+++ b/var.go
@@ -2,7 +2,6 @@ package main
import (
"bytes"
- "fmt"
"io"
)
@@ -15,8 +14,8 @@ type Var interface {
}
type SimpleVar struct {
- // TODO(ukai): string -> Value (literal or so?)
- value string
+ // TODO(ukai): []byte -> Value (literal or so?)
+ value []byte
origin string
}
@@ -24,9 +23,9 @@ func (v SimpleVar) Flavor() string { return "simple" }
func (v SimpleVar) Origin() string { return v.origin }
func (v SimpleVar) IsDefined() bool { return true }
-func (v SimpleVar) String() string { return v.value }
+func (v SimpleVar) String() string { return string(v.value) }
func (v SimpleVar) Eval(w io.Writer, ev *Evaluator) {
- fmt.Fprint(w, v.value)
+ w.Write(v.value)
}
func (v SimpleVar) Append(ev *Evaluator, s string) Var {
@@ -35,10 +34,10 @@ func (v SimpleVar) Append(ev *Evaluator, s string) Var {
panic(err)
}
var buf bytes.Buffer
- buf.WriteString(v.value)
+ buf.Write(v.value)
buf.WriteByte(' ')
val.Eval(&buf, ev)
- v.value = buf.String()
+ v.value = buf.Bytes()
return v
}