@@ -335,6 +335,7 @@ automatically generated class:
335335 <th>C# Type</th>
336336 <th>PHP Type</th>
337337 <th>Dart Type</th>
338+ <th>Rust Type</th>
338339 </tr>
339340 <tr>
340341 <td>double</td>
@@ -347,6 +348,7 @@ automatically generated class:
347348 <td>double</td>
348349 <td>float</td>
349350 <td>double</td>
351+ <td>f64</td>
350352 </tr>
351353 <tr>
352354 <td>float</td>
@@ -359,6 +361,7 @@ automatically generated class:
359361 <td>float</td>
360362 <td>float</td>
361363 <td>double</td>
364+ <td>f32</td>
362365 </tr>
363366 <tr>
364367 <td>int32</td>
@@ -373,6 +376,7 @@ automatically generated class:
373376 <td>int</td>
374377 <td>integer</td>
375378 <td>int</td>
379+ <td>i32</td>
376380 </tr>
377381 <tr>
378382 <td>int64</td>
@@ -387,6 +391,7 @@ automatically generated class:
387391 <td>long</td>
388392 <td>integer/string<sup>[6]</sup></td>
389393 <td>Int64</td>
394+ <td>i64</td>
390395 </tr>
391396 <tr>
392397 <td>uint32</td>
@@ -399,6 +404,7 @@ automatically generated class:
399404 <td>uint</td>
400405 <td>integer</td>
401406 <td>int</td>
407+ <td>u32</td>
402408 </tr>
403409 <tr>
404410 <td>uint64</td>
@@ -411,6 +417,7 @@ automatically generated class:
411417 <td>ulong</td>
412418 <td>integer/string<sup>[6]</sup></td>
413419 <td>Int64</td>
420+ <td>u64</td>
414421 </tr>
415422 <tr>
416423 <td>sint32</td>
@@ -424,6 +431,7 @@ automatically generated class:
424431 <td>int</td>
425432 <td>integer</td>
426433 <td>int</td>
434+ <td>i32</td>
427435 </tr>
428436 <tr>
429437 <td>sint64</td>
@@ -437,6 +445,7 @@ automatically generated class:
437445 <td>long</td>
438446 <td>integer/string<sup>[6]</sup></td>
439447 <td>Int64</td>
448+ <td>i64</td>
440449 </tr>
441450 <tr>
442451 <td>fixed32</td>
@@ -450,6 +459,7 @@ automatically generated class:
450459 <td>uint</td>
451460 <td>integer</td>
452461 <td>int</td>
462+ <td>u32</td>
453463 </tr>
454464 <tr>
455465 <td>fixed64</td>
@@ -463,6 +473,7 @@ automatically generated class:
463473 <td>ulong</td>
464474 <td>integer/string<sup>[6]</sup></td>
465475 <td>Int64</td>
476+ <td>u64</td>
466477 </tr>
467478 <tr>
468479 <td>sfixed32</td>
@@ -475,6 +486,7 @@ automatically generated class:
475486 <td>int</td>
476487 <td>integer</td>
477488 <td>int</td>
489+ <td>i32</td>
478490 </tr>
479491 <tr>
480492 <td>sfixed64</td>
@@ -487,6 +499,7 @@ automatically generated class:
487499 <td>long</td>
488500 <td>integer/string<sup>[6]</sup></td>
489501 <td>Int64</td>
502+ <td>i64</td>
490503 </tr>
491504 <tr>
492505 <td>bool</td>
@@ -499,6 +512,7 @@ automatically generated class:
499512 <td>bool</td>
500513 <td>boolean</td>
501514 <td>bool</td>
515+ <td>bool</td>
502516 </tr>
503517 <tr>
504518 <td>string</td>
@@ -512,6 +526,7 @@ automatically generated class:
512526 <td>string</td>
513527 <td>string</td>
514528 <td>String</td>
529+ <td>ProtoString</td>
515530 </tr>
516531 <tr>
517532 <td>bytes</td>
@@ -524,6 +539,7 @@ automatically generated class:
524539 <td>ByteString</td>
525540 <td>string</td>
526541 <td>List<int></td>
542+ <td>ProtoBytes</td>
527543 </tr>
528544 </tbody>
529545 </table >
@@ -925,6 +941,24 @@ unknown fields in the old binary.
925941Proto3 messages preserve unknown fields and includes them during parsing and in
926942the serialized output, which matches proto2 behavior.
927943
944+ ### Retaining Unknown Fields {#retaining}
945+
946+ Some actions can cause unknown fields to be lost. For example, if you do one of
947+ the following, unknown fields are lost:
948+
949+ * Serialize a proto to JSON.
950+ * Iterate over all of the fields in a message to populate a new message.
951+
952+ To avoid losing unknown fields, do the following:
953+
954+ * Use binary; avoid using text formats for data exchange.
955+ * Use message-oriented APIs, such as ` CopyFrom() ` and ` MergeFrom() ` , to copy data
956+ rather than copying field-by-field
957+
958+ TextFormat is a bit of a special case. Serializing to TextFormat prints unknown
959+ fields using their field numbers. But parsing TextFormat data back into a binary
960+ proto fails if there are entries that use field numbers.
961+
928962## Any {#any}
929963
930964The ` Any ` message type lets you use messages as embedded types without having
0 commit comments