"io"
"os"
- "go.cypherpunks.su/recfile/v2"
+ "go.cypherpunks.su/recfile/v3"
)
func main() {
}
fmt.Println("Record:", n)
for _, field := range fields {
- fmt.Printf("%s: %s\n", field.Name, field.Value)
+ fmt.Printf("%s: %s\n", field.F, field.V)
}
n++
}
package recfile
type Field struct {
- Name string
- Value string
+ F string
+ V string
}
-module go.cypherpunks.su/recfile/v2
+module go.cypherpunks.su/recfile/v3
-go 1.21
+go 1.24
}
m := make(map[string]string, len(fields))
for _, f := range fields {
- m[f.Name] = f.Value
+ m[f.F] = f.V
}
return m, nil
}
}
m := make(map[string][]string)
for _, f := range fields {
- m[f.Name] = append(m[f.Name], f.Value)
+ m[f.F] = append(m[f.F], f.V)
}
return m, nil
}
"sync"
"time"
- "go.cypherpunks.su/recfile/v2"
+ "go.cypherpunks.su/recfile/v3"
)
type RecfileHandler struct {
multiline, ok := attr.Value.Any().([]string)
if ok {
if len(multiline) > 0 {
- _, err = w.WriteFieldMultiline(group+attr.Key, multiline)
+ _, err = w.WriteField(group+attr.Key, multiline)
return
}
return
}
}
_, err = w.WriteFields(recfile.Field{
- Name: group + attr.Key,
- Value: attr.Value.String(),
+ F: group + attr.Key,
+ V: attr.Value.String(),
})
return
}
var fields []recfile.Field
if h.LevelKey != "" {
fields = append(fields, recfile.Field{
- Name: h.LevelKey,
- Value: rec.Level.String(),
+ F: h.LevelKey,
+ V: rec.Level.String(),
})
}
if h.TimeKey != "" {
fields = append(fields, recfile.Field{
- Name: h.TimeKey,
- Value: rec.Time.UTC().Format(time.RFC3339Nano),
+ F: h.TimeKey,
+ V: rec.Time.UTC().Format(time.RFC3339Nano),
})
}
- fields = append(fields, recfile.Field{Name: h.MsgKey, Value: rec.Message})
+ fields = append(fields, recfile.Field{F: h.MsgKey, V: rec.Message})
_, err = w.WriteFields(fields...)
if err != nil {
return
"testing"
"time"
- "go.cypherpunks.su/recfile/v2"
+ "go.cypherpunks.su/recfile/v3"
)
func TestBasic(t *testing.T) {
func (w *Writer) WriteFields(fs ...Field) (written int, err error) {
var n int
for _, f := range fs {
- n, err = w.w.WriteString(
- f.Name + ": " + backslashSpace(strings.TrimLeft(f.Value, " ")) + "\n",
- )
+ n, err = w.WriteField(f.F, strings.Split(f.V, "\n"))
written += n
if err != nil {
return
return
}
-func (w *Writer) WriteFieldMultiline(name string, lines []string) (written int, err error) {
+func (w *Writer) WriteField(name string, lines []string) (written int, err error) {
var n int
n, err = w.w.WriteString(
name + ": " + backslashSpace(strings.TrimLeft(lines[0], " ")) + "\n",