pw_protobuf: allow StreamDecoder subclasses to move

Code generated subclasses will be able to be initialized with an
existing StreamDecoder, moving its members to themselves, in the same
way that StreamEncoder works.

Change-Id: I5874615937895cb7d410432da04c8b2b4ad24209
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/86400
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Scott James Remnant <keybuk@google.com>
1 file changed
tree: d822f82a6a1c91da8c64794d528f205d11914964
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_android_toolchain/
  7. pw_arduino_build/
  8. pw_assert/
  9. pw_assert_basic/
  10. pw_assert_log/
  11. pw_assert_tokenized/
  12. pw_assert_zephyr/
  13. pw_base64/
  14. pw_bloat/
  15. pw_blob_store/
  16. pw_bluetooth_hci/
  17. pw_boot/
  18. pw_boot_cortex_m/
  19. pw_build/
  20. pw_build_info/
  21. pw_build_mcuxpresso/
  22. pw_bytes/
  23. pw_checksum/
  24. pw_chrono/
  25. pw_chrono_embos/
  26. pw_chrono_freertos/
  27. pw_chrono_stl/
  28. pw_chrono_threadx/
  29. pw_chrono_zephyr/
  30. pw_cli/
  31. pw_console/
  32. pw_containers/
  33. pw_cpu_exception/
  34. pw_cpu_exception_cortex_m/
  35. pw_crypto/
  36. pw_docgen/
  37. pw_doctor/
  38. pw_env_setup/
  39. pw_file/
  40. pw_function/
  41. pw_fuzzer/
  42. pw_hdlc/
  43. pw_hex_dump/
  44. pw_i2c/
  45. pw_i2c_mcuxpresso/
  46. pw_interrupt/
  47. pw_interrupt_cortex_m/
  48. pw_interrupt_zephyr/
  49. pw_kvs/
  50. pw_libc/
  51. pw_log/
  52. pw_log_android/
  53. pw_log_basic/
  54. pw_log_null/
  55. pw_log_rpc/
  56. pw_log_string/
  57. pw_log_tokenized/
  58. pw_log_zephyr/
  59. pw_malloc/
  60. pw_malloc_freelist/
  61. pw_metric/
  62. pw_minimal_cpp_stdlib/
  63. pw_module/
  64. pw_multisink/
  65. pw_package/
  66. pw_persistent_ram/
  67. pw_polyfill/
  68. pw_preprocessor/
  69. pw_presubmit/
  70. pw_protobuf/
  71. pw_protobuf_compiler/
  72. pw_random/
  73. pw_result/
  74. pw_ring_buffer/
  75. pw_router/
  76. pw_rpc/
  77. pw_snapshot/
  78. pw_software_update/
  79. pw_span/
  80. pw_spi/
  81. pw_status/
  82. pw_stm32cube_build/
  83. pw_stream/
  84. pw_string/
  85. pw_symbolizer/
  86. pw_sync/
  87. pw_sync_baremetal/
  88. pw_sync_embos/
  89. pw_sync_freertos/
  90. pw_sync_stl/
  91. pw_sync_threadx/
  92. pw_sync_zephyr/
  93. pw_sys_io/
  94. pw_sys_io_arduino/
  95. pw_sys_io_baremetal_lm3s6965evb/
  96. pw_sys_io_baremetal_stm32f429/
  97. pw_sys_io_mcuxpresso/
  98. pw_sys_io_stdio/
  99. pw_sys_io_stm32cube/
  100. pw_sys_io_zephyr/
  101. pw_system/
  102. pw_target_runner/
  103. pw_thread/
  104. pw_thread_embos/
  105. pw_thread_freertos/
  106. pw_thread_stl/
  107. pw_thread_threadx/
  108. pw_tls_client/
  109. pw_tls_client_boringssl/
  110. pw_tls_client_mbedtls/
  111. pw_tokenizer/
  112. pw_tool/
  113. pw_toolchain/
  114. pw_trace/
  115. pw_trace_tokenized/
  116. pw_transfer/
  117. pw_unit_test/
  118. pw_varint/
  119. pw_watch/
  120. pw_web_ui/
  121. pw_work_queue/
  122. targets/
  123. third_party/
  124. zephyr/
  125. .bazelignore
  126. .bazelrc
  127. .clang-format
  128. .clang-tidy
  129. .eslintrc.json
  130. .gitattributes
  131. .gitignore
  132. .gn
  133. .prettierrc.js
  134. .pylintrc
  135. activate.bat
  136. Android.bp
  137. AUTHORS
  138. bootstrap.bat
  139. bootstrap.sh
  140. BUILD.bazel
  141. BUILD.gn
  142. BUILDCONFIG.gn
  143. CMakeLists.txt
  144. Kconfig.zephyr
  145. LICENSE
  146. modules.gni
  147. OWNERS
  148. package.json
  149. PIGWEED_MODULES
  150. PW_PLUGINS
  151. README.md
  152. tsconfig.json
  153. WORKSPACE
  154. yarn.lock
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/

Links