examples: remove a few .clone() calls
This commit is contained in:
parent
c880820c4a
commit
fd27582ac7
2 changed files with 13 additions and 12 deletions
|
|
@ -117,7 +117,7 @@ fn main() {
|
||||||
let from = message.from.clone().unwrap();
|
let from = message.from.clone().unwrap();
|
||||||
if let Some(body) = message.get_best_body(vec!["en"]) {
|
if let Some(body) = message.get_best_body(vec!["en"]) {
|
||||||
if body.1 .0 == "die" {
|
if body.1 .0 == "die" {
|
||||||
println!("Secret die command triggered by {}", from.clone());
|
println!("Secret die command triggered by {}", from);
|
||||||
wait_for_stream_end = true;
|
wait_for_stream_end = true;
|
||||||
tx.start_send(Packet::StreamEnd).unwrap();
|
tx.start_send(Packet::StreamEnd).unwrap();
|
||||||
}
|
}
|
||||||
|
|
@ -127,7 +127,7 @@ fn main() {
|
||||||
let event = PubSubEvent::try_from(child).unwrap();
|
let event = PubSubEvent::try_from(child).unwrap();
|
||||||
if let PubSubEvent::PublishedItems { node, items } = event {
|
if let PubSubEvent::PublishedItems { node, items } = event {
|
||||||
if node.0 == ns::AVATAR_METADATA {
|
if node.0 == ns::AVATAR_METADATA {
|
||||||
for item in items {
|
for item in items.into_iter() {
|
||||||
let payload = item.payload.clone().unwrap();
|
let payload = item.payload.clone().unwrap();
|
||||||
if payload.is("metadata", ns::AVATAR_METADATA) {
|
if payload.is("metadata", ns::AVATAR_METADATA) {
|
||||||
// TODO: do something with these metadata.
|
// TODO: do something with these metadata.
|
||||||
|
|
@ -136,7 +136,7 @@ fn main() {
|
||||||
"[1m{}[0m has published an avatar, downloading...",
|
"[1m{}[0m has published an avatar, downloading...",
|
||||||
from.clone()
|
from.clone()
|
||||||
);
|
);
|
||||||
let iq = download_avatar(&from);
|
let iq = download_avatar(from.clone());
|
||||||
tx.start_send(Packet::Stanza(iq.into())).unwrap();
|
tx.start_send(Packet::Stanza(iq.into())).unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -193,25 +193,26 @@ fn make_presence(caps: Caps) -> Presence {
|
||||||
presence
|
presence
|
||||||
}
|
}
|
||||||
|
|
||||||
fn download_avatar(from: &Jid) -> Iq {
|
fn download_avatar(from: Jid) -> Iq {
|
||||||
Iq::from_get("coucou", PubSub::Items(Items {
|
Iq::from_get("coucou", PubSub::Items(Items {
|
||||||
max_items: None,
|
max_items: None,
|
||||||
node: NodeName(String::from(ns::AVATAR_DATA)),
|
node: NodeName(String::from(ns::AVATAR_DATA)),
|
||||||
subid: None,
|
subid: None,
|
||||||
items: Vec::new(),
|
items: Vec::new(),
|
||||||
}))
|
}))
|
||||||
.with_to(from.clone())
|
.with_to(from)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_iq_result(pubsub: PubSub, from: &Jid) {
|
fn handle_iq_result(pubsub: PubSub, from: &Jid) {
|
||||||
if let PubSub::Items(items) = pubsub {
|
if let PubSub::Items(items) = pubsub {
|
||||||
if items.node.0 == ns::AVATAR_DATA {
|
if items.node.0 == ns::AVATAR_DATA {
|
||||||
for item in items.items {
|
for item in items.items {
|
||||||
if let Some(id) = item.id.clone() {
|
match (item.id.clone(), item.payload.clone()) {
|
||||||
if let Some(payload) = &item.payload {
|
(Some(id), Some(payload)) => {
|
||||||
let data = AvatarData::try_from(payload.clone()).unwrap();
|
let data = AvatarData::try_from(payload).unwrap();
|
||||||
save_avatar(from, id.0, &data.data).unwrap();
|
save_avatar(from, id.0, &data.data).unwrap();
|
||||||
}
|
}
|
||||||
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -219,11 +220,11 @@ fn handle_iq_result(pubsub: PubSub, from: &Jid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn save_avatar(from: &Jid, id: String, data: &[u8]) -> io::Result<()> {
|
fn save_avatar(from: &Jid, id: String, data: &[u8]) -> io::Result<()> {
|
||||||
let directory = format!("data/{}", from.clone());
|
let directory = format!("data/{}", from);
|
||||||
let filename = format!("data/{}/{}", from.clone(), id);
|
let filename = format!("data/{}/{}", from, id);
|
||||||
println!(
|
println!(
|
||||||
"Saving avatar from [1m{}[0m to [4m{}[0m.",
|
"Saving avatar from [1m{}[0m to [4m{}[0m.",
|
||||||
from.clone(), filename
|
from, filename
|
||||||
);
|
);
|
||||||
create_dir_all(directory)?;
|
create_dir_all(directory)?;
|
||||||
let mut file = File::create(filename)?;
|
let mut file = File::create(filename)?;
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ fn main() {
|
||||||
{
|
{
|
||||||
match (message.from, message.bodies.get("")) {
|
match (message.from, message.bodies.get("")) {
|
||||||
(Some(ref from), Some(ref body)) if body.0 == "die" => {
|
(Some(ref from), Some(ref body)) if body.0 == "die" => {
|
||||||
println!("Secret die command triggered by {}", from.clone());
|
println!("Secret die command triggered by {}", from);
|
||||||
wait_for_stream_end = true;
|
wait_for_stream_end = true;
|
||||||
tx.start_send(Packet::StreamEnd).unwrap();
|
tx.start_send(Packet::StreamEnd).unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue