blob: 8f4dee93ef282e720d41561b75a879396483a81a [file] [log] [blame]
// GENERATED FILE - DO NOT MODIFY
#include <algorithm>
#include "tensorflow/core/framework/tensor_shape.pb_text-impl.h"
using ::tensorflow::strings::ProtoSpaceAndComments;
using ::tensorflow::strings::Scanner;
using ::tensorflow::strings::StrCat;
namespace tensorflow {
string ProtoDebugString(
const ::tensorflow::TensorShapeProto_Dim& msg) {
string s;
::tensorflow::strings::ProtoTextOutput o(&s, false);
internal::AppendProtoDebugString(&o, msg);
o.CloseTopMessage();
return s;
}
string ProtoShortDebugString(
const ::tensorflow::TensorShapeProto_Dim& msg) {
string s;
::tensorflow::strings::ProtoTextOutput o(&s, true);
internal::AppendProtoDebugString(&o, msg);
o.CloseTopMessage();
return s;
}
namespace internal {
void AppendProtoDebugString(
::tensorflow::strings::ProtoTextOutput* o,
const ::tensorflow::TensorShapeProto_Dim& msg) {
o->AppendNumericIfNotZero("size", msg.size());
o->AppendStringIfNotEmpty("name", ProtobufStringToString(msg.name()));
}
} // namespace internal
bool ProtoParseFromString(
const string& s,
::tensorflow::TensorShapeProto_Dim* msg) {
msg->Clear();
Scanner scanner(s);
if (!internal::ProtoParseFromScanner(&scanner, false, false, msg)) return false;
scanner.Eos();
return scanner.GetResult();
}
namespace internal {
bool ProtoParseFromScanner(
::tensorflow::strings::Scanner* scanner, bool nested, bool close_curly,
::tensorflow::TensorShapeProto_Dim* msg) {
std::vector<bool> has_seen(2, false);
while(true) {
ProtoSpaceAndComments(scanner);
if (nested && (scanner->Peek() == (close_curly ? '}' : '>'))) {
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
return true;
}
if (!nested && scanner->empty()) { return true; }
scanner->RestartCapture()
.Many(Scanner::LETTER_DIGIT_UNDERSCORE)
.StopCapture();
StringPiece identifier;
if (!scanner->GetResult(nullptr, &identifier)) return false;
bool parsed_colon = false;
(void)parsed_colon;
ProtoSpaceAndComments(scanner);
if (scanner->Peek() == ':') {
parsed_colon = true;
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
}
if (identifier == "size") {
if (has_seen[0]) return false;
has_seen[0] = true;
int64 value;
if (!parsed_colon || !::tensorflow::strings::ProtoParseNumericFromScanner(scanner, &value)) return false;
msg->set_size(value);
}
else if (identifier == "name") {
if (has_seen[1]) return false;
has_seen[1] = true;
string str_value;
if (!parsed_colon || !::tensorflow::strings::ProtoParseStringLiteralFromScanner(
scanner, &str_value)) return false;
SetProtobufStringSwapAllowed(&str_value, msg->mutable_name());
}
}
}
} // namespace internal
string ProtoDebugString(
const ::tensorflow::TensorShapeProto& msg) {
string s;
::tensorflow::strings::ProtoTextOutput o(&s, false);
internal::AppendProtoDebugString(&o, msg);
o.CloseTopMessage();
return s;
}
string ProtoShortDebugString(
const ::tensorflow::TensorShapeProto& msg) {
string s;
::tensorflow::strings::ProtoTextOutput o(&s, true);
internal::AppendProtoDebugString(&o, msg);
o.CloseTopMessage();
return s;
}
namespace internal {
void AppendProtoDebugString(
::tensorflow::strings::ProtoTextOutput* o,
const ::tensorflow::TensorShapeProto& msg) {
for (int i = 0; i < msg.dim_size(); ++i) {
o->OpenNestedMessage("dim");
::tensorflow::internal::AppendProtoDebugString(o, msg.dim(i));
o->CloseNestedMessage();
}
o->AppendBoolIfTrue("unknown_rank", msg.unknown_rank());
}
} // namespace internal
bool ProtoParseFromString(
const string& s,
::tensorflow::TensorShapeProto* msg) {
msg->Clear();
Scanner scanner(s);
if (!internal::ProtoParseFromScanner(&scanner, false, false, msg)) return false;
scanner.Eos();
return scanner.GetResult();
}
namespace internal {
bool ProtoParseFromScanner(
::tensorflow::strings::Scanner* scanner, bool nested, bool close_curly,
::tensorflow::TensorShapeProto* msg) {
std::vector<bool> has_seen(2, false);
while(true) {
ProtoSpaceAndComments(scanner);
if (nested && (scanner->Peek() == (close_curly ? '}' : '>'))) {
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
return true;
}
if (!nested && scanner->empty()) { return true; }
scanner->RestartCapture()
.Many(Scanner::LETTER_DIGIT_UNDERSCORE)
.StopCapture();
StringPiece identifier;
if (!scanner->GetResult(nullptr, &identifier)) return false;
bool parsed_colon = false;
(void)parsed_colon;
ProtoSpaceAndComments(scanner);
if (scanner->Peek() == ':') {
parsed_colon = true;
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
}
if (identifier == "dim") {
const bool is_list = (scanner->Peek() == '[');
do {
if (is_list) {
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
}
const char open_char = scanner->Peek();
if (open_char != '{' && open_char != '<') return false;
scanner->One(Scanner::ALL);
ProtoSpaceAndComments(scanner);
if (!::tensorflow::internal::ProtoParseFromScanner(
scanner, true, open_char == '{', msg->add_dim())) return false;
} while (is_list && scanner->Peek() == ',');
if (is_list && !scanner->OneLiteral("]").GetResult()) return false;
}
else if (identifier == "unknown_rank") {
if (has_seen[1]) return false;
has_seen[1] = true;
bool value;
if (!parsed_colon || !::tensorflow::strings::ProtoParseBoolFromScanner(scanner, &value)) return false;
msg->set_unknown_rank(value);
}
}
}
} // namespace internal
} // namespace tensorflow