Removed custom to_string implementation with fmt::Display
Just for kicks I ran clippy through the program, and just changed it so that fmt::Display was implemented.
This commit is contained in:
parent
efd10aa82b
commit
04cb175b8a
91
src/lib.rs
91
src/lib.rs
|
@ -1,4 +1,5 @@
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
|
use std::fmt;
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate lazy_static;
|
extern crate lazy_static;
|
||||||
|
@ -162,51 +163,6 @@ pub struct Magnet {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Magnet {
|
impl Magnet {
|
||||||
/**
|
|
||||||
This generates a magnet url string given a Magnet struct
|
|
||||||
*/
|
|
||||||
pub fn to_string(&self) -> String {
|
|
||||||
|
|
||||||
let mut magnet_string = String::from("magnet:?");
|
|
||||||
|
|
||||||
if self.xt != String::new() {
|
|
||||||
magnet_string = format!("{}{}{}:{}", magnet_string, "xt=urn:", self.hash_type, self.xt);
|
|
||||||
}
|
|
||||||
|
|
||||||
let add_to_mag_string = |p_name: String, p_val: &String| -> String {
|
|
||||||
if p_val != &String::new() {
|
|
||||||
format!("&{}={}", p_name, p_val)
|
|
||||||
} else {
|
|
||||||
String::new()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("dn"), &self.dn));
|
|
||||||
if self.xl != -1 {
|
|
||||||
magnet_string = format!("{}&xl={}", magnet_string, &self.xl);
|
|
||||||
}
|
|
||||||
|
|
||||||
magnet_string = {
|
|
||||||
let mut tr_string = String::new();
|
|
||||||
for tracker in &self.tr {
|
|
||||||
tr_string = format!("{}&tr={}", tr_string, tracker);
|
|
||||||
}
|
|
||||||
|
|
||||||
format!("{}{}", magnet_string, tr_string)
|
|
||||||
};
|
|
||||||
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("ws"), &self.ws));
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("xs"), &self.xs));
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("kt"), &self.kt));
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("as"), &self.acceptable_source));
|
|
||||||
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("mt"), &self.mt));
|
|
||||||
|
|
||||||
|
|
||||||
magnet_string
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///Just calls new_no_validation, but validates the string given before running it through.
|
///Just calls new_no_validation, but validates the string given before running it through.
|
||||||
/// This is the recommended way of creating a nw Magnet struct, if you're unsure of the quality
|
/// This is the recommended way of creating a nw Magnet struct, if you're unsure of the quality
|
||||||
/// of the magnet url's you input.
|
/// of the magnet url's you input.
|
||||||
|
@ -278,6 +234,51 @@ impl Magnet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for Magnet {
|
||||||
|
/*
|
||||||
|
This generates a magnet url string given a Magnet struct
|
||||||
|
*/
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
let mut magnet_string = String::from("magnet:?");
|
||||||
|
|
||||||
|
if self.xt != String::new() {
|
||||||
|
magnet_string = format!("{}{}{}:{}", magnet_string, "xt=urn:", self.hash_type, self.xt);
|
||||||
|
}
|
||||||
|
|
||||||
|
let add_to_mag_string = |p_name: String, p_val: &String| -> String {
|
||||||
|
if p_val != &String::new() {
|
||||||
|
format!("&{}={}", p_name, p_val)
|
||||||
|
} else {
|
||||||
|
String::new()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("dn"), &self.dn));
|
||||||
|
if self.xl != -1 {
|
||||||
|
magnet_string = format!("{}&xl={}", magnet_string, &self.xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
magnet_string = {
|
||||||
|
let mut tr_string = String::new();
|
||||||
|
for tracker in &self.tr {
|
||||||
|
tr_string = format!("{}&tr={}", tr_string, tracker);
|
||||||
|
}
|
||||||
|
|
||||||
|
format!("{}{}", magnet_string, tr_string)
|
||||||
|
};
|
||||||
|
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("ws"), &self.ws));
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("xs"), &self.xs));
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("kt"), &self.kt));
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("as"), &self.acceptable_source));
|
||||||
|
magnet_string = format!("{}{}", magnet_string, add_to_mag_string(String::from("mt"), &self.mt));
|
||||||
|
|
||||||
|
|
||||||
|
write!(f, "{}", magnet_string)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::Magnet;
|
use crate::Magnet;
|
||||||
|
|
Loading…
Reference in New Issue