Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1295)

Unified Diff: service/datastore/dumper/dumper.go

Issue 2342063003: Differentiate between single- and multi- props. (Closed)
Patch Set: Slice is now always a clone. This is marginally worse performance, but a much safer UI. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « service/datastore/datastore_test.go ('k') | service/datastore/dumper/dumper_example_test.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: service/datastore/dumper/dumper.go
diff --git a/service/datastore/dumper/dumper.go b/service/datastore/dumper/dumper.go
index a3b5a16187ac0a322f6658f87eb4de36a1431876..94add797d0ad51f300862bb0e61e615ace00a8d6 100644
--- a/service/datastore/dumper/dumper.go
+++ b/service/datastore/dumper/dumper.go
@@ -86,17 +86,26 @@ func (cfg Config) Query(c context.Context, q *datastore.Query) (n int, err error
return
}
- prop := func(kind, name string, vals []datastore.Property) (err error) {
- if len(vals) <= 1 {
- return prnt(" %q: [%s]\n", name, fmtVal(kind, name, vals[0]))
- }
- if err = prnt(" %q: [\n %s", name, fmtVal(kind, name, vals[0])); err != nil {
- return
- }
- for _, v := range vals[1:] {
- if err = prnt(",\n %s", fmtVal(kind, name, v)); err != nil {
+ prop := func(kind, name string, pdata datastore.PropertyData) (err error) {
+ switch t := pdata.(type) {
+ case datastore.Property:
+ return prnt(" %q: %s\n", name, fmtVal(kind, name, t))
+
+ case datastore.PropertySlice:
+ if len(t) <= 1 {
+ return prnt(" %q: [%s]\n", name, fmtVal(kind, name, t[0]))
+ }
+ if err = prnt(" %q: [\n %s", name, fmtVal(kind, name, t[0])); err != nil {
return
}
+ for _, v := range t[1:] {
+ if err = prnt(",\n %s", fmtVal(kind, name, v)); err != nil {
+ return
+ }
+ }
+
+ default:
+ return fmt.Errorf("unknown PropertyData %T", t)
}
return prnt("\n ]\n")
}
« no previous file with comments | « service/datastore/datastore_test.go ('k') | service/datastore/dumper/dumper_example_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698