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

Side by Side Diff: service/rawdatastore/types.go

Issue 1259593005: Add 'user friendly' datastore API. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: 100% coverage of new code Created 5 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 package rawdatastore
6
7 import (
8 "fmt"
9 )
10
11 // ByteString is a short byte slice (up to 1500 bytes) that can be indexed.
12 type ByteString []byte
13
14 // GeoPoint represents a location as latitude/longitude in degrees.
15 //
16 // You probably shouldn't use these, but their inclusion here is so that the
17 // RawDatastore can interact (and round-trip) correctly with other datastore API
18 // implementations.
19 type GeoPoint struct {
20 Lat, Lng float64
21 }
22
23 // Valid returns whether a GeoPoint is within [-90, 90] latitude and [-180,
24 // 180] longitude.
25 func (g GeoPoint) Valid() bool {
26 return -90 <= g.Lat && g.Lat <= 90 && -180 <= g.Lng && g.Lng <= 180
27 }
28
29 // TransactionOptions are the options for running a transaction.
30 type TransactionOptions struct {
31 // XG is whether the transaction can cross multiple entity groups. In
32 // comparison, a single group transaction is one where all datastore key s
33 // used have the same root key. Note that cross group transactions do no t
34 // have the same behavior as single group transactions. In particular, i t
35 // is much more likely to see partially applied transactions in differen t
36 // entity groups, in global queries.
37 // It is valid to set XG to true even if the transaction is within a
38 // single entity group.
39 XG bool
40 // Attempts controls the number of retries to perform when commits fail
41 // due to a conflicting transaction. If omitted, it defaults to 3.
42 Attempts int
43 }
44
45 // Toggle is a tri-state boolean (Auto/True/False), which allows structs
46 // to control boolean flags for metadata in a non-ambiguous way.
47 type Toggle byte
48
49 // These are the allowed values for Toggle. Any other values are invalid.
50 const (
51 Auto Toggle = iota
52 On
53 Off
54 )
55
56 func (b Toggle) String() string {
57 switch b {
58 case Auto:
59 return "Auto"
60 case On:
61 return "On"
62 case Off:
63 return "Off"
64 default:
65 return fmt.Sprintf("UNKNOWN_Toggle(%d)", b)
66 }
67 }
OLDNEW
« service/datastore/pls.go ('K') | « service/rawdatastore/serialize_test.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698