protected function filterValue($value, Protobuf\Field $field)
{
if ($value instanceof Protobuf\Message) {
if ($this->isKeyValueMessage($value)) {
$v = $value->getValue();
return [$value->getKey() => $v instanceof Protobuf\Message ? $this->encodeMessage($v) : $v];
}
if ($value instanceof Struct) {
$vals = [];
foreach ($value->getFields() as $field) {
$val = $this->filterValue($field->getValue(), $field->descriptor()->getFieldByName('value'));
$vals[$field->getKey()] = current($val);
}
return $vals;
}
if ($value instanceof ListValue) {
$vals = [];
foreach ($value->getValuesList() as $val) {
$vals[] = current($this->encodeMessage($val));
}
return $vals;
}
}
return parent::filterValue($value, $field);
}