Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package datastore | 5 package datastore |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "bytes" | 8 "bytes" |
| 9 "fmt" | 9 "fmt" |
| 10 "strings" | 10 "strings" |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 221 return false | 221 return false |
| 222 } | 222 } |
| 223 for _, sb := range id.SortBy { | 223 for _, sb := range id.SortBy { |
| 224 if sb.Property == "" || sb.Property == "__ancestor__" { | 224 if sb.Property == "" || sb.Property == "__ancestor__" { |
| 225 return false | 225 return false |
| 226 } | 226 } |
| 227 } | 227 } |
| 228 return true | 228 return true |
| 229 } | 229 } |
| 230 | 230 |
| 231 // YAMLString returns the YAML representation of this IndexDefinition. | |
| 232 // | |
| 233 // If the index definition is Builtin() or not Compound(), this will return | |
| 234 // an error. | |
| 235 func (id *IndexDefinition) YAMLString() (string, error) { | |
| 236 if id.Builtin() || !id.Compound() { | |
| 237 return "", fmt.Errorf("cannot generate YAML for this IndexDefini tion") | |
| 238 } | |
| 239 | |
| 240 ret := &bytes.Buffer{} | |
|
Vadim Sh.
2015/09/24 19:17:29
nit: just bytes.Buffer{}, no need for dynamic allo
iannucci
2015/09/24 19:52:34
Common misconception: there's no actual difference
Vadim Sh.
2015/09/24 19:57:50
"""In the current compilers, if a variable has its
iannucci
2015/09/24 20:12:59
it made more sense before I had the ws function. t
| |
| 241 indent := 0 | |
| 242 | |
| 243 first := true | |
| 244 ws := func(s string) { | |
| 245 nl := "\n" | |
| 246 if first { | |
| 247 nl = "" | |
| 248 first = false | |
| 249 } | |
| 250 _, err := fmt.Fprintf(ret, "%s%s%s", nl, strings.Repeat(" ", in dent), s) | |
| 251 if err != nil { | |
|
Vadim Sh.
2015/09/24 19:17:29
just remove errcheck from pre-commit-go.yml >_< Ch
iannucci
2015/09/24 19:52:34
lol ok
| |
| 252 panic(err) | |
| 253 } | |
| 254 } | |
| 255 | |
| 256 ws(fmt.Sprintf("- kind: %s", id.Kind)) | |
| 257 indent++ | |
| 258 if id.Ancestor { | |
| 259 ws("ancestor: yes") | |
| 260 } | |
| 261 ws("properties:") | |
| 262 for _, o := range id.SortBy { | |
| 263 ws(fmt.Sprintf("- name: %s", o.Property)) | |
| 264 if o.Descending { | |
| 265 indent++ | |
|
Vadim Sh.
2015/09/24 19:17:29
:) just pass indent explicitly, e.g.
ws("properti
iannucci
2015/09/24 19:52:35
done :)
| |
| 266 ws("direction: desc") | |
| 267 indent-- | |
| 268 } | |
| 269 } | |
| 270 return ret.String(), nil | |
| 271 } | |
| 272 | |
| 231 func (id *IndexDefinition) String() string { | 273 func (id *IndexDefinition) String() string { |
| 232 ret := &bytes.Buffer{} | 274 ret := &bytes.Buffer{} |
| 233 wr := func(r rune) { | 275 wr := func(r rune) { |
| 234 _, err := ret.WriteRune(r) | 276 _, err := ret.WriteRune(r) |
| 235 if err != nil { | 277 if err != nil { |
| 236 panic(err) | 278 panic(err) |
| 237 } | 279 } |
| 238 } | 280 } |
| 239 | 281 |
| 240 ws := func(s string) { | 282 ws := func(s string) { |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 256 } | 298 } |
| 257 for _, sb := range id.SortBy { | 299 for _, sb := range id.SortBy { |
| 258 wr('/') | 300 wr('/') |
| 259 if sb.Descending { | 301 if sb.Descending { |
| 260 wr('-') | 302 wr('-') |
| 261 } | 303 } |
| 262 ws(sb.Property) | 304 ws(sb.Property) |
| 263 } | 305 } |
| 264 return ret.String() | 306 return ret.String() |
| 265 } | 307 } |
| OLD | NEW |