For a non-repeated field, renders the value as a Javascript literal. Args: descriptor: The descriptor module from the protobuf package, e.g. google.protobuf.descriptor. field_desc: The type descriptor for the field value to be rendered. value: The value of the non-repeated fie
(descriptor, field_desc, value)
| 295 | |
| 296 | |
| 297 | def ValueToString(descriptor, field_desc, value): |
| 298 | """For a non-repeated field, renders the value as a Javascript literal. |
| 299 | |
| 300 | Args: |
| 301 | descriptor: The descriptor module from the protobuf package, e.g. |
| 302 | google.protobuf.descriptor. |
| 303 | field_desc: The type descriptor for the field value to be rendered. |
| 304 | value: The value of the non-repeated field to be rendered. |
| 305 | Returns: |
| 306 | A Javascript literal for the provided non-repeated value. |
| 307 | """ |
| 308 | if field_desc.type == descriptor.FieldDescriptor.TYPE_STRING: |
| 309 | escaped = ('' + value).encode('unicode-escape') |
| 310 | return "'%s'" % escaped.decode().replace("'", "\\'") |
| 311 | if field_desc.type == descriptor.FieldDescriptor.TYPE_BOOL: |
| 312 | if value: |
| 313 | return 'true' |
| 314 | return 'false' |
| 315 | if field_desc.type == descriptor.FieldDescriptor.TYPE_ENUM: |
| 316 | enum_value_name = field_desc.enum_type.values_by_number[value].name |
| 317 | return '%s.%s' % (field_desc.enum_type.full_name, enum_value_name) |
| 318 | if value is None: |
| 319 | return 'null' |
| 320 | return str(value) |
| 321 | |
| 322 | CONSTRUCTOR_ARG_FIELDS = [ |
| 323 | 'amp.validator.AmpLayout.supported_layouts', |
no test coverage detected