#include <google/protobuf/util/field_mask_util.h>
#include <cstdint>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/message.h>
#include <google/protobuf/stubs/map_util.h>
#include <google/protobuf/port_def.inc>
namespace google {
namespace protobuf {
namespace util {
FieldMask;
std::string FieldMaskUtil::ToString(const FieldMask& mask) { … }
void FieldMaskUtil::FromString(StringPiece str, FieldMask* out) { … }
bool FieldMaskUtil::SnakeCaseToCamelCase(StringPiece input,
std::string* output) { … }
bool FieldMaskUtil::CamelCaseToSnakeCase(StringPiece input,
std::string* output) { … }
bool FieldMaskUtil::ToJsonString(const FieldMask& mask, std::string* out) { … }
bool FieldMaskUtil::FromJsonString(StringPiece str, FieldMask* out) { … }
bool FieldMaskUtil::GetFieldDescriptors(
const Descriptor* descriptor, StringPiece path,
std::vector<const FieldDescriptor*>* field_descriptors) { … }
void FieldMaskUtil::GetFieldMaskForAllFields(const Descriptor* descriptor,
FieldMask* out) { … }
namespace {
class FieldMaskTree { … };
FieldMaskTree::FieldMaskTree() { … }
FieldMaskTree::~FieldMaskTree() { … }
void FieldMaskTree::MergeFromFieldMask(const FieldMask& mask) { … }
void FieldMaskTree::MergeToFieldMask(FieldMask* mask) { … }
void FieldMaskTree::MergeToFieldMask(const std::string& prefix,
const Node* node, FieldMask* out) { … }
void FieldMaskTree::AddPath(const std::string& path) { … }
void FieldMaskTree::RemovePath(const std::string& path,
const Descriptor* descriptor) { … }
void FieldMaskTree::IntersectPath(const std::string& path, FieldMaskTree* out) { … }
void FieldMaskTree::MergeLeafNodesToTree(const std::string& prefix,
const Node* node, FieldMaskTree* out) { … }
void FieldMaskTree::MergeMessage(const Node* node, const Message& source,
const FieldMaskUtil::MergeOptions& options,
Message* destination) { … }
void FieldMaskTree::AddRequiredFieldPath(Node* node,
const Descriptor* descriptor) { … }
bool FieldMaskTree::TrimMessage(const Node* node, Message* message) { … }
}
void FieldMaskUtil::ToCanonicalForm(const FieldMask& mask, FieldMask* out) { … }
void FieldMaskUtil::Union(const FieldMask& mask1, const FieldMask& mask2,
FieldMask* out) { … }
void FieldMaskUtil::Intersect(const FieldMask& mask1, const FieldMask& mask2,
FieldMask* out) { … }
void FieldMaskUtil::Subtract(const Descriptor* descriptor,
const FieldMask& mask1, const FieldMask& mask2,
FieldMask* out) { … }
bool FieldMaskUtil::IsPathInFieldMask(StringPiece path,
const FieldMask& mask) { … }
void FieldMaskUtil::MergeMessageTo(const Message& source, const FieldMask& mask,
const MergeOptions& options,
Message* destination) { … }
bool FieldMaskUtil::TrimMessage(const FieldMask& mask, Message* message) { … }
bool FieldMaskUtil::TrimMessage(const FieldMask& mask, Message* message,
const TrimOptions& options) { … }
}
}
}