diff --git a/radicle-cli/tests/commands.rs b/radicle-cli/tests/commands.rs index c9945a7e..e9a555e8 100644 --- a/radicle-cli/tests/commands.rs +++ b/radicle-cli/tests/commands.rs @@ -1321,7 +1321,7 @@ fn rad_clone_partial_fail() { &carol, PROTOCOL_VERSION, node::Features::SEED, - Alias::new("carol"), + &Alias::new("carol"), 0, &UserAgent::default(), localtime::LocalTime::now().into(), @@ -1390,7 +1390,7 @@ fn rad_clone_connect() { &alice.id, PROTOCOL_VERSION, node::Features::SEED, - Alias::new("alice"), + &Alias::new("alice"), 0, &ua, now, @@ -1406,7 +1406,7 @@ fn rad_clone_connect() { &bob.id, PROTOCOL_VERSION, node::Features::SEED, - Alias::new("bob"), + &Alias::new("bob"), 0, &ua, now, diff --git a/radicle-node/src/runtime.rs b/radicle-node/src/runtime.rs index 713f99b1..5ed6ab45 100644 --- a/radicle-node/src/runtime.rs +++ b/radicle-node/src/runtime.rs @@ -181,7 +181,7 @@ impl Runtime { .init( &id, announcement.features, - announcement.alias.clone(), + &announcement.alias, &announcement.agent, announcement.timestamp, announcement.addresses.iter(), @@ -198,7 +198,7 @@ impl Runtime { &id, version, radicle::node::Features::SEED, - alias, + &alias, 0, &UserAgent::default(), clock.into(), diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index 56154ddb..dce154d9 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -1695,7 +1695,7 @@ where announcer, ann.version, ann.features, - ann.alias.clone(), + &ann.alias, ann.work(), &ann.agent, timestamp, diff --git a/radicle-node/src/test/environment.rs b/radicle-node/src/test/environment.rs index 517b9582..aa16d2cd 100644 --- a/radicle-node/src/test/environment.rs +++ b/radicle-node/src/test/environment.rs @@ -133,7 +133,7 @@ impl Environment { .init( &public_key, config.node.features(), - Alias::new(alias), + &Alias::new(alias), &UserAgent::default(), now.into(), config.node.external_addresses.iter(), diff --git a/radicle-node/src/test/peer.rs b/radicle-node/src/test/peer.rs index 412817c5..a3ff1d79 100644 --- a/radicle-node/src/test/peer.rs +++ b/radicle-node/src/test/peer.rs @@ -174,7 +174,7 @@ where .init( &id, config.config.features(), - config.config.alias.clone(), + &config.config.alias, &UserAgent::default(), config.local_time.into(), config.config.external_addresses.iter(), @@ -254,7 +254,7 @@ where &peer.node_id(), PROTOCOL_VERSION, radicle::node::Features::default(), - Alias::from_str(peer.name).unwrap(), + &Alias::from_str(peer.name).unwrap(), 0, &UserAgent::default(), timestamp, diff --git a/radicle/src/node.rs b/radicle/src/node.rs index f775e7c4..b8ee1964 100644 --- a/radicle/src/node.rs +++ b/radicle/src/node.rs @@ -305,6 +305,11 @@ impl Alias { Err(e) => panic!("Alias::new: {e}"), } } + + /// Return a reference to the alias string. + pub fn as_str(&self) -> &str { + self.0.as_str() + } } impl From for String { diff --git a/radicle/src/node/address/store.rs b/radicle/src/node/address/store.rs index 2c44ec4b..c17dbcf6 100644 --- a/radicle/src/node/address/store.rs +++ b/radicle/src/node/address/store.rs @@ -56,7 +56,7 @@ pub trait Store { node: &NodeId, version: u8, features: node::Features, - alias: Alias, + alias: &Alias, pow: u32, agent: &UserAgent, timestamp: Timestamp, @@ -223,7 +223,7 @@ impl Store for Database { node: &NodeId, version: u8, features: node::Features, - alias: Alias, + alias: &Alias, pow: u32, agent: &UserAgent, timestamp: Timestamp, @@ -241,7 +241,7 @@ impl Store for Database { stmt.bind((1, node))?; stmt.bind((2, version as i64))?; stmt.bind((3, features))?; - stmt.bind((4, sql::Value::String(alias.into())))?; + stmt.bind((4, alias.as_str()))?; stmt.bind((5, pow as i64))?; stmt.bind((6, agent.as_str()))?; stmt.bind((7, ×tamp))?; @@ -537,7 +537,7 @@ mod test { &alice, 1, features, - Alias::new("alice"), + &Alias::new("alice"), 16, &ua, timestamp, @@ -552,7 +552,7 @@ mod test { &alice, 1, features, - Alias::new("bob"), + &Alias::new("bob"), 16, &ua, timestamp + 1, @@ -584,7 +584,7 @@ mod test { &alice, version, features, - Alias::new("alice"), + &Alias::new("alice"), 16, &ua, timestamp, @@ -620,21 +620,12 @@ mod test { banned: false, }; let inserted = cache - .insert( - &alice, - 1, - features, - alias.clone(), - 0, - &ua, - timestamp, - [ka.clone()], - ) + .insert(&alice, 1, features, &alias, 0, &ua, timestamp, [ka.clone()]) .unwrap(); assert!(inserted); let inserted = cache - .insert(&alice, 1, features, alias, 0, &ua, timestamp, [ka]) + .insert(&alice, 1, features, &alias, 0, &ua, timestamp, [ka]) .unwrap(); assert!(!inserted); @@ -664,7 +655,7 @@ mod test { &alice, 1, features, - alias1, + &alias1, 0, &ua1, timestamp, @@ -674,21 +665,12 @@ mod test { assert!(updated); let updated = cache - .insert(&alice, 1, features, alias2.clone(), 0, &ua1, timestamp, []) + .insert(&alice, 1, features, &alias2, 0, &ua1, timestamp, []) .unwrap(); assert!(!updated, "Can't update using the same timestamp"); let updated = cache - .insert( - &alice, - 1, - features, - alias2.clone(), - 0, - &ua1, - timestamp - 1, - [], - ) + .insert(&alice, 1, features, &alias2, 0, &ua1, timestamp - 1, []) .unwrap(); assert!(!updated, "Can't update using a smaller timestamp"); @@ -698,16 +680,7 @@ mod test { assert_eq!(node.pow, 0); let updated = cache - .insert( - &alice, - 1, - features, - alias2.clone(), - 0, - &ua2, - timestamp + 1, - [], - ) + .insert(&alice, 1, features, &alias2, 0, &ua2, timestamp + 1, []) .unwrap(); assert!(updated, "Can update with a larger timestamp"); @@ -716,7 +689,7 @@ mod test { &alice, 1, node::Features::NONE, - alias2, + &alias2, 1, &ua2, timestamp + 2, @@ -762,7 +735,7 @@ mod test { &alice, 1, features, - alice_alias.clone(), + &alice_alias, 0, &ua, timestamp, @@ -770,16 +743,7 @@ mod test { ) .unwrap(); cache - .insert( - &bob, - 1, - features, - bob_alias.clone(), - 0, - &ua, - timestamp, - [ka], - ) + .insert(&bob, 1, features, &bob_alias, 0, &ua, timestamp, [ka]) .unwrap(); } assert_eq!(cache.len().unwrap(), 6); @@ -822,7 +786,7 @@ mod test { address: ka.clone(), }); cache - .insert(&id, 3, features, alias.clone(), 0, &ua, timestamp, [ka]) + .insert(&id, 3, features, &alias, 0, &ua, timestamp, [ka]) .unwrap(); } @@ -849,7 +813,7 @@ mod test { &alice, 1, features, - Alias::new("alice"), + &Alias::new("alice"), 16, &ua, timestamp, @@ -900,7 +864,7 @@ mod test { &alice, 1, features, - Alias::new("alice"), + &Alias::new("alice"), 16, &ua, timestamp, diff --git a/radicle/src/node/db.rs b/radicle/src/node/db.rs index a71006da..2a01c687 100644 --- a/radicle/src/node/db.rs +++ b/radicle/src/node/db.rs @@ -133,7 +133,7 @@ impl Database { mut self, node: &NodeId, features: Features, - alias: Alias, + alias: &Alias, agent: &UserAgent, timestamp: Timestamp, addrs: impl IntoIterator, diff --git a/radicle/src/profile.rs b/radicle/src/profile.rs index 9509e921..90e6fac3 100644 --- a/radicle/src/profile.rs +++ b/radicle/src/profile.rs @@ -318,7 +318,7 @@ impl Profile { .init( &public_key, config.node.features(), - config.node.alias.clone(), + &config.node.alias, &UserAgent::default(), LocalTime::now().into(), config.node.external_addresses.iter(),