From 4f8c127da926bc1e1724e7686a42d37c1da0f563 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 24 Oct 2023 12:50:03 +1100 Subject: Use an mutable struct + const instead of an immutable class --- src/database/records.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'src/database/records.cpp') diff --git a/src/database/records.cpp b/src/database/records.cpp index 9d4dbd78..0619cd93 100644 --- a/src/database/records.cpp +++ b/src/database/records.cpp @@ -63,12 +63,12 @@ auto EncodeDataKey(const TrackId& id) -> std::string { auto EncodeDataValue(const TrackData& track) -> std::string { cppbor::Array val{ - cppbor::Uint{track.id()}, - cppbor::Tstr{track.filepath()}, - cppbor::Uint{track.tags_hash()}, - cppbor::Bool{track.is_tombstoned()}, - cppbor::Uint{track.modified_at().first}, - cppbor::Uint{track.modified_at().second}, + cppbor::Uint{track.id}, + cppbor::Tstr{track.filepath}, + cppbor::Uint{track.tags_hash}, + cppbor::Bool{track.is_tombstoned}, + cppbor::Uint{track.modified_at.first}, + cppbor::Uint{track.modified_at.second}, }; return val.toString(); } @@ -88,16 +88,15 @@ auto ParseDataValue(const leveldb::Slice& slice) -> std::shared_ptr { vals->get(5)->type() != cppbor::UINT) { return {}; } - TrackId id = vals->get(0)->asUint()->unsignedValue(); - auto path = vals->get(1)->asViewTstr()->view(); - uint64_t hash = vals->get(2)->asUint()->unsignedValue(); - bool tombstoned = vals->get(3)->asBool()->value(); - auto modified_at = std::make_pair( + auto res = std::make_shared(); + res->id = vals->get(0)->asUint()->unsignedValue(); + res->filepath = vals->get(1)->asViewTstr()->view(); + res->tags_hash = vals->get(2)->asUint()->unsignedValue(); + res->is_tombstoned = vals->get(3)->asBool()->value(); + res->modified_at = std::make_pair( vals->get(4)->asUint()->unsignedValue(), vals->get(5)->asUint()->unsignedValue()); - return std::make_shared(id, - std::pmr::string{path.data(), path.size()}, - hash, tombstoned, modified_at); + return res; } /* 'H/ 0xBEEF' */ -- cgit v1.2.3