const match_stage_t& insert_stage,
const node_offset_t& insert_size) {
ceph::encode(node_delta_op_t::INSERT, encoded);
- encode_key<KT>(key, encoded);
+ encode_key(key, encoded);
encode_value(value, encoded);
insert_pos.encode(encoded);
ceph::encode(insert_stage, encoded);
const char* p_node_start) {
ceph::encode(node_delta_op_t::SPLIT_INSERT, encoded);
split_at.encode(p_node_start, encoded);
- encode_key<KT>(key, encoded);
+ encode_key(key, encoded);
encode_value(value, encoded);
insert_pos.encode(encoded);
ceph::encode(insert_stage, encoded);
const snap_gen_t* p_snap_gen = nullptr;
};
-template <KeyT KT>
-void encode_key(const full_key_t<KT>& key, ceph::bufferlist& bl) {
+template<typename T>
+concept IsFullKey = std::same_as<T, key_hobj_t> || std::same_as<T, key_view_t>;
+
+template <IsFullKey Key>
+void encode_key(const Key& key, ceph::bufferlist& bl) {
ceph::encode(key.shard(), bl);
ceph::encode(key.pool(), bl);
ceph::encode(key.crush(), bl);
ceph::encode(key.gen(), bl);
}
-template<typename T>
-concept IsFullKey = std::same_as<T, key_hobj_t> || std::same_as<T, key_view_t>;
-
template<IsFullKey LHS, IsFullKey RHS>
std::strong_ordering operator<=>(const LHS& lhs, const RHS& rhs) noexcept {
auto ret = lhs.shard() <=> rhs.shard();