Use Option<&str> instead of Option<String> for set_uri()

There is no reason to require a heap-allocated String here.
This commit is contained in:
Sebastian Dröge 2016-05-18 11:29:57 +03:00
parent 546d67fa5a
commit b8a031c29b
5 changed files with 10 additions and 10 deletions

View file

@ -50,14 +50,14 @@ impl FileSink {
}
impl Sink for FileSink {
fn set_uri(&mut self, uri_str: &Option<String>) -> bool {
fn set_uri(&mut self, uri_str: &Option<&str>) -> bool {
match *uri_str {
None => {
self.location = None;
return true;
},
Some(ref uri_str) => {
let uri_parsed = Url::parse(uri_str.as_str());
let uri_parsed = Url::parse(uri_str);
match uri_parsed {
Ok(u) => {
match u.to_file_path().ok() {

View file

@ -51,14 +51,14 @@ impl FileSrc {
}
impl Source for FileSrc {
fn set_uri(&mut self, uri_str: &Option<String>) -> bool {
fn set_uri(&mut self, uri_str: &Option<&str>) -> bool {
match *uri_str {
None => {
self.location = None;
return true;
},
Some(ref uri_str) => {
let uri_parsed = Url::parse(uri_str.as_str());
let uri_parsed = Url::parse(uri_str);
match uri_parsed {
Ok(u) => {
match u.to_file_path().ok() {

View file

@ -123,7 +123,7 @@ impl HttpSrc {
}
impl Source for HttpSrc {
fn set_uri(&mut self, uri_str: &Option<String>) -> bool {
fn set_uri(&mut self, uri_str: &Option<&str>) -> bool {
if self.response.is_some() {
println_err!("Can't set URI after starting");
return false;
@ -135,7 +135,7 @@ impl Source for HttpSrc {
return true;
},
Some(ref uri_str) => {
let uri_parsed = Url::parse(uri_str.as_str());
let uri_parsed = Url::parse(uri_str);
match uri_parsed {
Ok(u) => {
if u.scheme() == "http" ||

View file

@ -24,7 +24,7 @@ use std::ptr;
use utils::*;
pub trait Sink: Sync + Send {
fn set_uri(&mut self, uri_str: &Option<String>) -> bool;
fn set_uri(&mut self, uri_str: &Option<&str>) -> bool;
fn get_uri(&self) -> Option<String>;
fn start(&mut self) -> bool;
fn stop(&mut self) -> bool;
@ -44,7 +44,7 @@ pub extern "C" fn sink_set_uri(ptr: *mut Box<Sink>, uri_ptr: *const c_char) -> G
GBoolean::from_bool(source.set_uri(&None))
} else {
let uri = unsafe { CStr::from_ptr(uri_ptr) };
GBoolean::from_bool(source.set_uri(&Some(String::from(uri.to_str().unwrap()))))
GBoolean::from_bool(source.set_uri(&Some(uri.to_str().unwrap())))
}
}

View file

@ -23,7 +23,7 @@ use std::ptr;
use utils::*;
pub trait Source: Sync + Send {
fn set_uri(&mut self, uri_str: &Option<String>) -> bool;
fn set_uri(&mut self, uri_str: &Option<&str>) -> bool;
fn get_uri(&self) -> Option<String>;
fn is_seekable(&self) -> bool;
fn get_size(&self) -> u64;
@ -48,7 +48,7 @@ pub extern "C" fn source_set_uri(ptr: *mut Box<Source>, uri_ptr: *const c_char)
GBoolean::from_bool(source.set_uri(&None))
} else {
let uri = unsafe { CStr::from_ptr(uri_ptr) };
GBoolean::from_bool(source.set_uri(&Some(String::from(uri.to_str().unwrap()))))
GBoolean::from_bool(source.set_uri(&Some(uri.to_str().unwrap())))
}
}