OBSERVAÇÃO:este site foi descontinuado. O site será desativado após 31 de janeiro de 2023, e o tráfego será redirecionado para o novo site em https://protobuf.dev. Enquanto isso, as atualizações serão feitas apenas para protobuf.dev.

field_mask_util.h

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

#include <google/protobuf/util/field_mask_util.h>
namespace google::protobuf::util

Define utilitários para o tipo conhecido do FieldMask.

Turmas neste arquivo

classe FieldMaskUtil

#include <google/protobuf/util/field_mask_util.h>
namespace google::protobuf::util

Participantes

static std::string
ToString(const FieldMask & mask)
Converte FieldMask de/para string, formatado por separando cada caminho com uma vírgula (por exemplo, "foo_bar,baz.quz").
static void
FromString(StringPiece str, FieldMask * out)
template static void
FromFieldNumbers(const std::vector< int64_t > & field_numbers, FieldMask * out)
Preenche a FieldMask com os caminhos correspondentes aos campos com os números fornecidos, depois de verificar se todos os números de campo são válidos.
static bool
ToJsonString(const FieldMask & mask, std::string * out)
Converte FieldMask de/para string, formatado de acordo com a especificação JSON proto3 para FieldMask (por exemplo, "fooBar,baz.quz"). mais…
static bool
FromJsonString(StringPiece str, FieldMask * out)
static bool
GetFieldDescriptors(const Descriptor * descriptor, StringPiece path, std::vector< const FieldDescriptor * > * field_descriptors)
Recebe os descritores dos campos que o caminho fornecido do descritor de mensagem atravessa, se field_Descriptors não for nulo. mais…
template static bool
IsValidPath(StringPiece path)
Verifica se o caminho fornecido é válido para o tipo T.
template static bool
IsValidFieldMask(const FieldMask & mask)
Verifica se a FieldMask especificada é válida para o tipo T.
template static void
AddPathToFieldMask(StringPiece path, FieldMask * mask)
Adiciona um caminho a FieldMask após verificar se o caminho fornecido é válido. mais…
template static FieldMask
GetFieldMaskForAllFields()
Cria um FieldMask com todos os campos do tipo T. mais…
template static void
GetFieldMaskForAllFields(FieldMask * out)
static void
GetFieldMaskForAllFields(const Descriptor * descriptor, FieldMask * out)
Essa variação usa o descritor de tipo protobuf como um argumento. mais…
static void
ToCanonicalForm(const FieldMask & mask, FieldMask * out)
Converte um FieldMask no formato canônico. mais…
static void
Union(const FieldMask & mask1, const FieldMask & mask2, FieldMask * out)
Cria uma união de duas FieldMasks.
static void
Intersect(const FieldMask & mask1, const FieldMask & mask2, FieldMask * out)
Cria uma intersecção de duas FieldMasks.
template static void
Subtract(const FieldMask & mask1, const FieldMask & mask2, FieldMask * out)
Subtrai a mask2 da base de mask1 do tipo T.
static void
Subtract(const Descriptor * descriptor, const FieldMask & mask1, const FieldMask & mask2, FieldMask * out)
Essa variação usa o descritor de tipo protobuf como um argumento. mais…
static bool
IsPathInFieldMask(StringPiece path, const FieldMask & mask)
Retornará "true" se o caminho for coberto pela FieldMask especificada. mais…
static void
MergeMessageTo(const Message & source, const FieldMask & mask, const MergeOptions & options, Message * destination)
Mescla os campos especificados em uma FieldMask em outra mensagem.
static bool
TrimMessage(const FieldMask & mask, Message * message)
Remove de "mensagem" qualquer campo que não seja representado no FieldMask fornecido. mais…
static bool
TrimMessage(const FieldMask & mask, Message * message, const TrimOptions & options)
Remove de "message" qualquer campo que não seja representado na FieldMask fornecida com TrimOptions personalizados. mais...

static bool FieldMaskUtil::ToJsonString(
        const FieldMask & mask,
        std::string * out)

Converte FieldMask de/para string, formatado de acordo com a especificação JSON proto3 para FieldMask (por exemplo, "fooBar,baz.quz").

Se o nome do campo não estiver em conformidade com o estilo (ou seja, não snake_case ao ser convertido em string, ou não camelCase quando convertido de string), a conversão falhará.


static bool FieldMaskUtil::GetFieldDescriptors(
        const Descriptor * descriptor,
        StringPiece path,
        std::vector< const FieldDescriptor * > * field_descriptors)

Recebe os descritores dos campos que o caminho fornecido do descritor de mensagem atravessa, se field_Descriptors não for nulo.

Retornar "false" se o caminho não for válido e o conteúdo de field_descritores não for especificado.


template static void FieldMaskUtil::AddPathToFieldMask(
        StringPiece path,
        FieldMask * mask)

Adiciona um caminho a FieldMask após verificar se o caminho fornecido é válido.

Esse método falhará na verificação se o caminho não for válido para o tipo T.


template static FieldMask FieldMaskUtil::GetFieldMaskForAllFields()

Cria um FieldMask com todos os campos do tipo T.

Essa FieldMask contém apenas campos de T, mas não campos de submensagem.


static void FieldMaskUtil::GetFieldMaskForAllFields(
        const Descriptor * descriptor,
        FieldMask * out)

Essa variação usa o descritor de tipo protobuf como um argumento.

Útil quando o tipo não é conhecido no momento da compilação.


static void FieldMaskUtil::ToCanonicalForm(
        const FieldMask & mask,
        FieldMask * out)

Converte um FieldMask no formato canônico.

Ele vai:

1. Remove paths that are covered by another path. For example,
   "foo.bar" is covered by "foo" and will be removed if "foo"
   is also in the FieldMask.
2. Sort all paths in alphabetical order.

static void FieldMaskUtil::Subtract(
        const Descriptor * descriptor,
        const FieldMask & mask1,
        const FieldMask & mask2,
        FieldMask * out)

Essa variação usa o descritor de tipo protobuf como um argumento.

Útil quando o tipo não é conhecido no momento da compilação.


static bool FieldMaskUtil::IsPathInFieldMask(
        StringPiece path,
        const FieldMask & mask)

Retornará "true" se o caminho for coberto pela FieldMask especificada.

O caminho "foo.bar" abrange todos os caminhos, como "foo.bar.baz", "foo.bar.quz.x" etc. Além disso, os caminhos pais não são cobertos por caminhos filhos explícitos, ou seja, "foo.bar" NÃO abrange "foo", mesmo que "bar" seja o único filho.


static bool FieldMaskUtil::TrimMessage(
        const FieldMask & mask,
        Message * message)

Remove de "mensagem" qualquer campo que não seja representado no FieldMask fornecido.

Se a FieldMask estiver vazia, nada acontecerá. Retorna "true" se a mensagem for modificada.


static bool FieldMaskUtil::TrimMessage(
        const FieldMask & mask,
        Message * message,
        const TrimOptions & options)

Remove de "message" qualquer campo que não seja representado na FieldMask fornecida com TrimOptions personalizados.

Se a FieldMask estiver vazia, nada acontecerá. Retorna "true" se a mensagem for modificada.

classe FieldMaskUtil::MergeOptions

#include <google/protobuf/util/field_mask_util.h>
namespace google::protobuf::util

Participantes

MergeOptions()
void
set_replace_message_fields(bool value)
Ao mesclar campos de mensagens, o comportamento padrão é mesclar o conteúdo de dois campos de mensagens. mais…
bool
replace_message_fields() const
void
set_replace_repeated_fields(bool value)
O comportamento de mesclagem padrão vai anexar entradas do campo repetido de origem ao campo repetido de destino. mais…
bool
replace_repeated_fields() const

void MergeOptions::set_replace_message_fields(
        bool value)

Ao mesclar campos de mensagens, o comportamento padrão é mesclar o conteúdo de dois campos de mensagens.

Se você quiser usar o campo da mensagem de origem para substituir o campo correspondente na mensagem de destino, defina essa sinalização como "true". Quando essa sinalização for definida, os campos de submensagem especificados que estejam ausentes na origem serão apagados no destino.


void MergeOptions::set_replace_repeated_fields(
        bool value)

O comportamento de mesclagem padrão vai anexar entradas do campo repetido de origem ao campo repetido de destino.

Se você quiser apenas manter as entradas do campo repetido de origem, defina essa sinalização como "true".

classe FieldMaskUtil::TrimOptions

#include <google/protobuf/util/field_mask_util.h>
namespace google::protobuf::util

Participantes

TrimOptions()
void
set_keep_required_fields(bool value)
Ao cortar campos de mensagem, o comportamento padrão é cortar os campos obrigatórios da mensagem atual se eles não forem especificados na máscara de campo. mais…
bool
keep_required_fields() const

void TrimOptions::set_keep_required_fields(
        bool value)

Ao cortar campos de mensagem, o comportamento padrão é cortar os campos obrigatórios da mensagem atual se eles não forem especificados na máscara de campo.

Se você quiser manter os campos obrigatórios da mensagem atual mesmo que eles não sejam especificados na máscara de campo, defina essa sinalização como "true".