#include "tensorstore/open_mode.h"
enum class tensorstore::ReadWriteMode;

Specifies whether reading and/or writing is permitted.

enumerator dynamic = 0;

Indicates that the mode is unspecified (only used at compile time).

enumerator read = 1;

Indicates that reading is supported.

enumerator write = 2;

Indicates that writing is supported.

enumerator read_write = 3;

Indicates that reading and writing are supported.

constexpr ReadWriteMode
tensorstore::operator&(ReadWriteMode a, ReadWriteMode b);
constexpr ReadWriteMode&
tensorstore::operator&=(ReadWriteMode& a, ReadWriteMode b);

Computes the intersection of two modes.

constexpr ReadWriteMode
tensorstore::operator|(ReadWriteMode a, ReadWriteMode b);
constexpr ReadWriteMode&
tensorstore::operator|=(ReadWriteMode& a, ReadWriteMode b);

Computes the union of two modes.

constexpr bool tensorstore::operator!(ReadWriteMode a);

Checks if the mode is not equal to ReadWriteMode::dynamic.

constexpr ReadWriteMode tensorstore::operator~(ReadWriteMode a);

Returns the complement of a mode.

constexpr bool
tensorstore::IsModeExplicitlyConvertible(ReadWriteMode source,
                                         
ReadWriteMode target);

Checks if source is potentially compatible with target.

std::string_view tensorstore::to_string(ReadWriteMode mode);

Returns a string representation of the mode.

std::ostream&
tensorstore::operator<<(std::ostream& os, ReadWriteMode mode);
void tensorstore::AbslStringify(Sink& sink, ReadWriteMode mode);

Prints a string representation of the mode to an std::ostream.