diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-10-24 12:50:03 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-10-24 12:50:03 +1100 |
| commit | 4f8c127da926bc1e1724e7686a42d37c1da0f563 (patch) | |
| tree | 3008768b88bd6fb07c2bc51905ab0bb95de65c1e /src/database/records.cpp | |
| parent | 5b5b792467537bc8afefea787f6e5c8c52d973fa (diff) | |
| download | tangara-fw-4f8c127da926bc1e1724e7686a42d37c1da0f563.tar.gz | |
Use an mutable struct + const instead of an immutable class
Diffstat (limited to 'src/database/records.cpp')
| -rw-r--r-- | src/database/records.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
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<TrackData> { 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<uint16_t, uint16_t>( + auto res = std::make_shared<TrackData>(); + 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<uint16_t, uint16_t>( vals->get(4)->asUint()->unsignedValue(), vals->get(5)->asUint()->unsignedValue()); - return std::make_shared<TrackData>(id, - std::pmr::string{path.data(), path.size()}, - hash, tombstoned, modified_at); + return res; } /* 'H/ 0xBEEF' */ |
