| 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 | 
|---|