# Functions

DecodeCursor decodes a cursor from its base-64 string representation.
DecodeKey decodes a key from the opaque representation returned by Encode.
IDKey creates a new key with an ID.
IncompleteKey creates a new incomplete key.
LoadStruct loads the properties from p to dst.
MaxAttempts returns a TransactionOption that overrides the default 3 attempt times.
NameKey creates a new key with a name.
NewClient creates a new Client for a given dataset.
NewDelete creates a mutation that deletes the entity with key k.
NewInsert creates a mutation that will save the entity src into the datastore with key k, returning an error if k already exists.
NewQuery creates a new Query for a specific entity kind.
NewUpdate creates a mutation that replaces the entity in the datastore with key k, returning an error if k does not exist.
NewUpsert creates a mutation that saves the entity src into the datastore with key k, whether or not k exists.
SaveStruct returns the properties from src as a slice of Properties.

# Constants

ScopeDatastore grants permissions to view and/or manage datastore entities.

# Variables

ErrConcurrentTransaction is returned when a transaction is rolled back due to a conflict with a concurrent transaction.
ErrInvalidEntityType is returned when functions like Get or Next are passed a dst or src argument of invalid type.
ErrInvalidKey is returned when an invalid key is presented.
ErrNoSuchEntity is returned when no entity was found for a given key.
ReadOnly is a TransactionOption that marks the transaction as read-only.

# Structs

Client is a client for reading and writing data in a datastore dataset.
Commit represents the result of a committed transaction.
Cursor is an iterator's position.
An Entity is the value type for a nested struct.
ErrFieldMismatch is returned when a field is to be loaded into a different type than the one it was stored from, or when a field is missing or unexported in the destination struct.
GeoPoint represents a location as latitude/longitude in degrees.
Iterator is the result of running a query.
Key represents the datastore key for a stored entity.
A Mutation represents a change to a Datastore entity.
PendingKey represents the key for newly-inserted entity.
Property is a name/value pair plus some metadata.
Query represents a datastore query.
Transaction represents a set of datastore operations to be committed atomically.

# Interfaces

KeyLoader can store a Key.
PropertyLoadSaver can be converted from and to a slice of Properties.
TransactionOption configures the way a transaction is executed.

# Type aliases

MultiError is returned by batch operations when there are errors with particular elements.
PropertyList converts a []Property to implement PropertyLoadSaver.