OLD | NEW |
| (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 } | |
OLD | NEW |