flat_map: Avoid double-templating Pair

As is, the type is a bit obnoxious to name, because you have to use
either FlatMap<K, V, 1>::Pair<K, V> or FlatMap<K, V, 1>::value_type.

Because FlatMap doesn't have any copy semantics, you are pretty much
required to use constructors that take the expected std::array, should a
class want to decorate this type.

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