pw_kvs: Move EntrySize to the EntryHeader class

Change-Id: I4b2dd6d6e9e632df9d39bcfad1c2a6ac321ab317
diff --git a/pw_kvs/format.cc b/pw_kvs/format.cc
index 819b541..d53856c 100644
--- a/pw_kvs/format.cc
+++ b/pw_kvs/format.cc
@@ -64,7 +64,7 @@
   byte buffer[32];
 
   address += checked_data_offset();
-  size_t bytes_to_read = entry_size() - checked_data_offset();
+  size_t bytes_to_read = size() - checked_data_offset();
 
   while (bytes_to_read > 0u) {
     const size_t read_size = std::min(sizeof(buffer), bytes_to_read);
diff --git a/pw_kvs/key_value_store.cc b/pw_kvs/key_value_store.cc
index 86b8bf4..0169301 100644
--- a/pw_kvs/key_value_store.cc
+++ b/pw_kvs/key_value_store.cc
@@ -45,14 +45,6 @@
   return hash;
 }
 
-constexpr size_t EntrySize(string_view key, span<const byte> value) {
-  return sizeof(EntryHeader) + key.size() + value.size();
-}
-
-constexpr size_t EntrySize(const EntryHeader& header) {
-  return sizeof(EntryHeader) + header.key_length() + header.value_length();
-}
-
 }  // namespace
 
 Status KeyValueStore::Init() {
@@ -132,7 +124,7 @@
     key_descriptor.address = key_descriptor_list_[key_id].address;
     EntryHeader header;
     TRY(ReadEntryHeader(key_descriptor, &header));
-    sector_map_[sector_id].valid_bytes += header.entry_size();
+    sector_map_[sector_id].valid_bytes += header.size();
   }
   enabled_ = true;
   return Status::OK;
@@ -154,9 +146,9 @@
   DBG("   Checksum     = 0x%zx", size_t(header.checksum()));
   DBG("   Key length   = 0x%zx", size_t(header.key_length()));
   DBG("   Value length = 0x%zx", size_t(header.value_length()));
-  DBG("   Entry size   = 0x%zx", size_t(header.entry_size()));
+  DBG("   Entry size   = 0x%zx", size_t(header.size()));
   DBG("   Padded size  = 0x%zx",
-      size_t(AlignUp(header.entry_size(), alignment_bytes)));
+      size_t(AlignUp(header.size(), alignment_bytes)));
 
   if (HeaderLooksLikeUnwrittenData(header)) {
     return Status::NOT_FOUND;
@@ -190,7 +182,7 @@
 
   // TODO: Extract this to something like "NextValidEntryAddress".
   *next_entry_address =
-      AlignUp(key_descriptor.address + header.entry_size(), alignment_bytes);
+      AlignUp(key_descriptor.address + header.size(), alignment_bytes);
 
   return Status::OK;
 }
@@ -410,7 +402,7 @@
                                                string_view key,
                                                span<const byte> value) {
   SectorDescriptor* sector;
-  TRY(FindOrRecoverSectorWithSpace(&sector, EntrySize(key, value)));
+  TRY(FindOrRecoverSectorWithSpace(&sector, EntryHeader::size(key, value)));
   DBG("Writing existing entry; found sector: %d",
       static_cast<int>(sector - sector_map_.data()));
   return AppendEntry(sector, key_descriptor, key, value);
@@ -433,7 +425,7 @@
   key_descriptor.key_version = 0;  // will be incremented by AppendEntry()
 
   SectorDescriptor* sector;
-  TRY(FindOrRecoverSectorWithSpace(&sector, EntrySize(key, value)));
+  TRY(FindOrRecoverSectorWithSpace(&sector, EntryHeader::size(key, value)));
   DBG("Writing new entry; found sector: %d",
       static_cast<int>(sector - sector_map_.data()));
   TRY(AppendEntry(sector, &key_descriptor, key, value));
@@ -475,7 +467,7 @@
 
   // Find a new sector for the entry and write it to the new location.
   SectorDescriptor* new_sector =
-      FindSectorWithSpace(EntrySize(header), old_sector, true);
+      FindSectorWithSpace(header.size(), old_sector, true);
   if (new_sector == nullptr) {
     return Status::RESOURCE_EXHAUSTED;
   }
diff --git a/pw_kvs/pw_kvs_private/format.h b/pw_kvs/pw_kvs_private/format.h
index d89fc9e..2c05889 100644
--- a/pw_kvs/pw_kvs_private/format.h
+++ b/pw_kvs/pw_kvs_private/format.h
@@ -45,8 +45,14 @@
                                FlashPartition::Address header_address,
                                ChecksumAlgorithm* algorithm) const;
 
-  size_t entry_size() const {
-    return sizeof(*this) + key_length() + value_length();
+  // Calculates the total size of the entry: header, key, and value.
+  static constexpr size_t size(std::string_view key,
+                               span<const std::byte> value) {
+    return sizeof(EntryHeader) + key.size() + value.size();
+  }
+
+  size_t size() const {
+    return sizeof(EntryHeader) + key_length() + value_length();
   }
 
   uint32_t magic() const { return magic_; }