lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit c8b9700fe93f80fbff0b7f0c05ec5f785ee0011e
parent 2d3d64dc041249e137b26e233b3777dd0153e74d
Author: triesap <tyson@radroots.org>
Date:   Wed, 29 Jul 2026 03:19:34 +0000

codec: close strict copy hygiene findings

- replace redundant clones of copy event and trade identifiers
- use entry-based deletion-target deduplication without changing precedence
- preserve evaluator order invariance and order/trade tag behavior
- pass strict all-feature Clippy and the complete codec test matrix

Diffstat:
Mcrates/event_codec/src/deletion/reconciliation_v1.rs | 21+++++++++------------
Mcrates/event_codec/src/deletion/reconciliation_v1/evaluator/tests.rs | 8++++----
Mcrates/event_codec/src/order/tags.rs | 2+-
Mcrates/event_codec/src/trade/mod.rs | 2+-
4 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/crates/event_codec/src/deletion/reconciliation_v1.rs b/crates/event_codec/src/deletion/reconciliation_v1.rs @@ -328,7 +328,7 @@ pub mod evaluator { ) { event_reference = Some(RadrootsNip09EventReferenceEvidence { - request_id: request_event.id().clone(), + request_id: *request_event.id(), }); } if let Some(coordinate) = address_match { @@ -343,7 +343,7 @@ pub mod evaluator { address_reference = Some(RadrootsNip09AddressReferenceEvidence { coordinate: coordinate.clone(), inclusive_cutoff, - request_id: request_event.id().clone(), + request_id: *request_event.id(), }); } } @@ -822,16 +822,13 @@ pub mod inbound { error, } })?; - if !event_targets.contains_key(&event_id) { - event_targets.insert( - event_id.clone(), - RadrootsInboundNip09DeletionEventTarget { - tag_index, - event_id, - raw_tag: tag.clone(), - }, - ); - } + event_targets.entry(event_id).or_insert_with(|| { + RadrootsInboundNip09DeletionEventTarget { + tag_index, + event_id, + raw_tag: tag.clone(), + } + }); } Some("a") => { let Some(value) = tag.get(1) else { diff --git a/crates/event_codec/src/deletion/reconciliation_v1/evaluator/tests.rs b/crates/event_codec/src/deletion/reconciliation_v1/evaluator/tests.rs @@ -99,7 +99,7 @@ fn nip09_evaluator_exact_event_reference_is_time_independent() { vec![event_reference(target.event().id_hex().as_str())], "exact", ); - let request_id = request.event().id().clone(); + let request_id = *request.event().id(); let decision = evaluate_nip09_suppression(&target, &[request]); @@ -134,7 +134,7 @@ fn nip09_evaluator_address_cutoff_is_inclusive_and_later_replacement_is_visible( vec![address_reference(coordinate.as_str())], "address", ); - let request_id = request.event().id().clone(); + let request_id = *request.event().id(); let suppressed = evaluate_nip09_suppression(&at_cutoff, core::slice::from_ref(&request)); assert_decision( @@ -312,8 +312,8 @@ fn nip09_evaluator_reduction_is_order_and_repeat_invariant() { vec![address_reference(coordinate.as_str())], "address older", ); - let lower_exact_id = core::cmp::min(exact_a.event().id(), exact_b.event().id()).clone(); - let lower_address_id = core::cmp::min(address_a.event().id(), address_b.event().id()).clone(); + let lower_exact_id = *core::cmp::min(exact_a.event().id(), exact_b.event().id()); + let lower_address_id = *core::cmp::min(address_a.event().id(), address_b.event().id()); let forward = vec![ exact_a.clone(), diff --git a/crates/event_codec/src/order/tags.rs b/crates/event_codec/src/order/tags.rs @@ -65,7 +65,7 @@ fn parse_event_ptr_tag( None => None, }; if let Some(relay) = relay.as_ref() { - RadrootsEventEnvelopePointer::new(event_id.clone(), [relay.as_str()]) + RadrootsEventEnvelopePointer::new(event_id, [relay.as_str()]) .map_err(|_| EventParseError::InvalidTag(name))?; } Ok(Some(RadrootsEventPtr { diff --git a/crates/event_codec/src/trade/mod.rs b/crates/event_codec/src/trade/mod.rs @@ -424,7 +424,7 @@ mod tests { let parent = RadrootsTradeMutationId::parse(hex_64('9')).unwrap(); let mut parent_envelope = proposal(); - parent_envelope.parent_mutation_ids.push(parent.clone()); + parent_envelope.parent_mutation_ids.push(parent); let parent_tags = trade_mutation_tags(&parent_envelope).unwrap(); validate_trade_mutation_tags(&parent_envelope, &parent_tags).unwrap();