Resolve "Local collection trait and beets implementation" #9

Merged
wojtek merged 12 commits from 4---local-collection-trait-and-beets-implementation into main 2023-03-31 14:24:54 +02:00
Showing only changes of commit ecc4b64e43 - Show all commits

View File

@ -87,7 +87,7 @@ impl Beets {
trait LibraryPrivate { trait LibraryPrivate {
const CMD_LIST: &'static str; const CMD_LIST: &'static str;
const LIST_FORMAT_SEPARATOR: &'static str; const LIST_FORMAT_SEPARATOR: &'static str;
const LIST_FORMAT: &'static str; const LIST_FORMAT_ARG: &'static str;
fn list_cmd_and_args(query: &Query) -> Vec<String>; fn list_cmd_and_args(query: &Query) -> Vec<String>;
fn list_to_albums(list_output: Vec<String>) -> Result<Vec<Album>, Error>; fn list_to_albums(list_output: Vec<String>) -> Result<Vec<Album>, Error>;
@ -110,7 +110,7 @@ macro_rules! list_format_separator {
impl LibraryPrivate for Beets { impl LibraryPrivate for Beets {
const CMD_LIST: &'static str = "ls"; const CMD_LIST: &'static str = "ls";
const LIST_FORMAT_SEPARATOR: &'static str = list_format_separator!(); const LIST_FORMAT_SEPARATOR: &'static str = list_format_separator!();
const LIST_FORMAT: &'static str = concat!( const LIST_FORMAT_ARG: &'static str = concat!(
"--format=", "--format=",
"$albumartist", "$albumartist",
list_format_separator!(), list_format_separator!(),
@ -127,7 +127,7 @@ impl LibraryPrivate for Beets {
fn list_cmd_and_args(query: &Query) -> Vec<String> { fn list_cmd_and_args(query: &Query) -> Vec<String> {
let mut cmd: Vec<String> = vec![String::from(Self::CMD_LIST)]; let mut cmd: Vec<String> = vec![String::from(Self::CMD_LIST)];
cmd.push(Self::LIST_FORMAT.to_string()); cmd.push(Self::LIST_FORMAT_ARG.to_string());
cmd.append(&mut query.to_args()); cmd.append(&mut query.to_args());
cmd cmd
} }
@ -315,7 +315,7 @@ mod tests {
#[test] #[test]
fn test_list_empty() { fn test_list_empty() {
let executor = TestExecutor { let executor = TestExecutor {
arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT.to_string()]), arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT_ARG.to_string()]),
output: Some(Ok(vec![])), output: Some(Ok(vec![])),
}; };
let mut beets = Beets::new(Box::new(executor)); let mut beets = Beets::new(Box::new(executor));
@ -334,7 +334,7 @@ mod tests {
} }
let executor = TestExecutor { let executor = TestExecutor {
arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT.to_string()]), arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT_ARG.to_string()]),
output: Some(Ok(output)), output: Some(Ok(output)),
}; };
let mut beets = Beets::new(Box::new(executor)); let mut beets = Beets::new(Box::new(executor));
@ -363,7 +363,7 @@ mod tests {
expected[1].tracks.rotate_left(1); expected[1].tracks.rotate_left(1);
let executor = TestExecutor { let executor = TestExecutor {
arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT.to_string()]), arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT_ARG.to_string()]),
output: Some(Ok(output)), output: Some(Ok(output)),
}; };
let mut beets = Beets::new(Box::new(executor)); let mut beets = Beets::new(Box::new(executor));
@ -384,7 +384,7 @@ mod tests {
} }
let executor = TestExecutor { let executor = TestExecutor {
arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT.to_string()]), arguments: Some(vec!["ls".to_string(), Beets::LIST_FORMAT_ARG.to_string()]),
output: Some(Ok(output)), output: Some(Ok(output)),
}; };
let mut beets = Beets::new(Box::new(executor)); let mut beets = Beets::new(Box::new(executor));
@ -403,7 +403,7 @@ mod tests {
let executor = TestExecutor { let executor = TestExecutor {
arguments: Some(vec![ arguments: Some(vec![
"ls".to_string(), "ls".to_string(),
Beets::LIST_FORMAT.to_string(), Beets::LIST_FORMAT_ARG.to_string(),
String::from("^album:some.album"), String::from("^album:some.album"),
String::from("track:5"), String::from("track:5"),
String::from("artist:some.artist"), String::from("artist:some.artist"),