commands: add newline at end of all command serializers

This commit is contained in:
2025-12-08 05:49:54 +09:00
parent 34e588832c
commit e7aee6ce10
52 changed files with 76 additions and 59 deletions

View File

@@ -192,7 +192,7 @@ macro_rules! empty_command_request {
}
fn serialize(&self) -> String {
Self::COMMAND.to_string()
Self::COMMAND.to_string() + "\n"
}
fn parse(
@@ -259,7 +259,7 @@ macro_rules! single_item_command_request {
}
fn serialize(&self) -> String {
format!("{} {}", Self::COMMAND, self.0)
format!("{} {}\n", Self::COMMAND, self.0)
}
fn parse(
@@ -308,8 +308,8 @@ macro_rules! single_optional_item_command_request {
fn serialize(&self) -> String {
match &self.0 {
Some(item) => format!("{} {}", Self::COMMAND, item),
None => Self::COMMAND.to_string(),
Some(item) => format!("{} {}\n", Self::COMMAND, item),
None => Self::COMMAND.to_string() + "\n",
}
}

View File

@@ -23,9 +23,9 @@ impl CommandRequest<'_> for PauseRequest {
fn serialize(&self) -> String {
match self.0 {
Some(true) => format!("{} 1", Self::COMMAND),
Some(false) => format!("{} 0", Self::COMMAND),
None => Self::COMMAND.to_string(),
Some(true) => format!("{} 1\n", Self::COMMAND),
Some(false) => format!("{} 0\n", Self::COMMAND),
None => Self::COMMAND.to_string() + "\n",
}
}

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for SeekRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songpos, self.time)
format!("{} {} {}\n", Self::COMMAND, self.songpos, self.time)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -35,7 +35,7 @@ impl CommandRequest<'_> for SeekCurRequest {
SeekMode::RelativeReverse => format!("-{}", self.time),
};
format!("{} {}", Self::COMMAND, time_str)
format!("{} {}\n", Self::COMMAND, time_str)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for SeekIdRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songid, self.time)
format!("{} {} {}\n", Self::COMMAND, self.songid, self.time)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -31,7 +31,7 @@ impl CommandRequest<'_> for MountRequest {
fn serialize(&self) -> String {
debug_assert!(self.path.to_str().is_some());
format!(
"{} {} {}",
"{} {} {}\n",
Self::COMMAND,
self.path.to_str().unwrap_or("<invalid path>"),
self.uri

View File

@@ -27,7 +27,7 @@ impl CommandRequest<'_> for UnmountRequest {
fn serialize(&self) -> String {
debug_assert!(self.0.to_str().is_some());
format!(
"{} {}",
"{} {}\n",
Self::COMMAND,
self.0.to_str().unwrap_or("<invalid path>")
)

View File

@@ -32,7 +32,7 @@ impl CommandRequest<'_> for AlbumArtRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.uri, self.offset)
format!("{} {} {}\n", Self::COMMAND, self.uri, self.offset)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -37,6 +37,7 @@ impl CommandRequest<'_> for CountRequest {
if let Some(group) = self.group.as_ref() {
cmd.push_str(&format!(" group {}", group));
}
cmd.push_str("\n");
cmd
}

View File

@@ -43,6 +43,7 @@ impl CommandRequest<'_> for FindRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -47,6 +47,7 @@ impl CommandRequest<'_> for FindAddRequest {
if let Some(position) = &self.position {
cmd.push_str(&format!(" position {}", position));
}
cmd.push_str("\n");
cmd
}

View File

@@ -48,6 +48,7 @@ impl CommandRequest<'_> for ListRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -34,7 +34,7 @@ impl CommandRequest<'_> for ReadPictureRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.uri, self.offset)
format!("{} {} {}\n", Self::COMMAND, self.uri, self.offset)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -43,6 +43,7 @@ impl CommandRequest<'_> for SearchRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -47,6 +47,7 @@ impl CommandRequest<'_> for SearchAddRequest {
if let Some(position) = &self.position {
cmd.push_str(&format!(" position {}", position));
}
cmd.push_str("\n");
cmd
}

View File

@@ -57,6 +57,7 @@ impl CommandRequest<'_> for SearchAddPlRequest {
if let Some(position) = &self.position {
cmd.push_str(&format!(" position {}", position));
}
cmd.push_str("\n");
cmd
}

View File

@@ -39,6 +39,7 @@ impl CommandRequest<'_> for SearchCountRequest {
if let Some(group) = &self.group {
cmd.push_str(&format!(" group {}", group));
}
cmd.push_str("\n");
cmd
}

View File

@@ -23,7 +23,7 @@ impl CommandRequest<'_> for RandomRequest {
fn serialize(&self) -> String {
let state = if self.0 { "1" } else { "0" };
format!("{} {}", Self::COMMAND, state)
format!("{} {}\n", Self::COMMAND, state)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -23,7 +23,7 @@ impl CommandRequest<'_> for RepeatRequest {
fn serialize(&self) -> String {
let state = if self.0 { "1" } else { "0" };
format!("{} {}", Self::COMMAND, state)
format!("{} {}\n", Self::COMMAND, state)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -32,9 +32,9 @@ impl CommandRequest<'_> for IdleRequest {
.map(|subsystem| subsystem.to_string())
.collect::<Vec<_>>()
.join(",");
format!("{} {}", Self::COMMAND, subsystems_str)
format!("{} {}\n", Self::COMMAND, subsystems_str)
}
None => Self::COMMAND.to_string(),
None => Self::COMMAND.to_string() + "\n",
}
}

View File

@@ -30,8 +30,8 @@ impl CommandRequest<'_> for AddRequest {
fn serialize(&self) -> String {
match self.position {
Some(position) => format!("{} {} {}", Self::COMMAND, self.uri, position),
None => format!("{} {}", Self::COMMAND, self.uri),
Some(position) => format!("{} {} {}\n", Self::COMMAND, self.uri, position),
None => format!("{} {}\n", Self::COMMAND, self.uri),
}
}

View File

@@ -31,8 +31,8 @@ impl CommandRequest<'_> for AddIdRequest {
fn serialize(&self) -> String {
match self.position {
Some(pos) => format!("{} {} {}", Self::COMMAND, self.uri, pos),
None => format!("{} {}", Self::COMMAND, self.uri),
Some(pos) => format!("{} {} {}\n", Self::COMMAND, self.uri, pos),
None => format!("{} {}\n", Self::COMMAND, self.uri),
}
}

View File

@@ -35,7 +35,7 @@ impl CommandRequest<'_> for AddTagIdRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {}",
"{} {} {} {}\n",
Self::COMMAND,
self.songid,
self.tag_name,

View File

@@ -31,7 +31,7 @@ impl CommandRequest<'_> for ClearTagIdRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songid, self.tag_name)
format!("{} {} {}\n", Self::COMMAND, self.songid, self.tag_name)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for MoveRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.from_or_range, self.to)
format!("{} {} {}\n", Self::COMMAND, self.from_or_range, self.to)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for MoveIdRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.id, self.to)
format!("{} {} {}\n", Self::COMMAND, self.id, self.to)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -44,6 +44,7 @@ impl CommandRequest<'_> for PlaylistFindRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -43,6 +43,7 @@ impl CommandRequest<'_> for PlaylistSearchRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -33,8 +33,8 @@ impl CommandRequest<'_> for PlChangesRequest {
fn serialize(&self) -> String {
match self.window.as_ref() {
Some(window) => format!("{} {} {}", Self::COMMAND, self.version, window),
None => format!("{} {}", Self::COMMAND, self.version),
Some(window) => format!("{} {} {}\n", Self::COMMAND, self.version, window),
None => format!("{} {}\n", Self::COMMAND, self.version),
}
}

View File

@@ -33,8 +33,8 @@ impl CommandRequest<'_> for PlChangesPosIdRequest {
fn serialize(&self) -> String {
match self.window.as_ref() {
Some(window) => format!("{} {} {}", Self::COMMAND, self.version, window),
None => format!("{} {}", Self::COMMAND, self.version),
Some(window) => format!("{} {} {}\n", Self::COMMAND, self.version, window),
None => format!("{} {}\n", Self::COMMAND, self.version),
}
}

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for PrioRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.prio, self.window)
format!("{} {} {}\n", Self::COMMAND, self.prio, self.window)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -35,7 +35,7 @@ impl CommandRequest<'_> for PrioIdRequest {
.map(|id| id.to_string())
.collect::<Vec<String>>()
.join(",");
format!("{} {} {}", Self::COMMAND, self.prio, songids)
format!("{} {} {}\n", Self::COMMAND, self.prio, songids)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -32,7 +32,7 @@ impl CommandRequest<'_> for RangeIdRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songid, self.time_interval)
format!("{} {} {}\n", Self::COMMAND, self.songid, self.time_interval)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for SwapRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songpos1, self.songpos2)
format!("{} {} {}\n", Self::COMMAND, self.songpos1, self.songpos2)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -29,7 +29,7 @@ impl CommandRequest<'_> for SwapIdRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.songid1, self.songid2)
format!("{} {} {}\n", Self::COMMAND, self.songid1, self.songid2)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -37,7 +37,7 @@ impl CommandRequest<'_> for StickerDecRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {} {}",
"{} {} {} {} {}\n",
Self::COMMAND,
self.sticker_type,
self.uri,

View File

@@ -35,7 +35,7 @@ impl CommandRequest<'_> for StickerDeleteRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {}",
"{} {} {} {}\n",
Self::COMMAND,
self.sticker_type,
self.uri,

View File

@@ -60,6 +60,7 @@ impl CommandRequest<'_> for StickerFindRequest {
if let Some(window) = &self.window {
cmd.push_str(&format!(" window {}", window));
}
cmd.push_str("\n");
cmd
}

View File

@@ -35,7 +35,7 @@ impl CommandRequest<'_> for StickerGetRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {}",
"{} {} {} {}\n",
Self::COMMAND,
self.sticker_type,
self.uri,

View File

@@ -37,7 +37,7 @@ impl CommandRequest<'_> for StickerIncRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {} {}",
"{} {} {} {} {}\n",
Self::COMMAND,
self.sticker_type,
self.uri,

View File

@@ -34,7 +34,7 @@ impl CommandRequest<'_> for StickerListRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.sticker_type, self.uri)
format!("{} {} {}\n", Self::COMMAND, self.sticker_type, self.uri)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -37,7 +37,7 @@ impl CommandRequest<'_> for StickerSetRequest {
fn serialize(&self) -> String {
format!(
"{} {} {} {} {}",
"{} {} {} {} {}\n",
Self::COMMAND,
self.sticker_type,
self.uri,

View File

@@ -32,9 +32,9 @@ impl CommandRequest<'_> for StickerNamesTypesRequest {
fn serialize(&self) -> String {
if let Some(sticker_type) = &self.0 {
format!("{} {}", Self::COMMAND, sticker_type)
format!("{} {}\n", Self::COMMAND, sticker_type)
} else {
Self::COMMAND.to_string()
Self::COMMAND.to_string() + "\n"
}
}

View File

@@ -36,9 +36,9 @@ impl CommandRequest<'_> for ListPlaylistRequest {
fn serialize(&self) -> String {
if let Some(range) = &self.range {
format!("{} {} {}", Self::COMMAND, self.name, range)
format!("{} {} {}\n", Self::COMMAND, self.name, range)
} else {
format!("{} {}", Self::COMMAND, self.name)
format!("{} {}\n", Self::COMMAND, self.name)
}
}

View File

@@ -33,8 +33,8 @@ impl CommandRequest<'_> for ListPlaylistInfoRequest {
fn serialize(&self) -> String {
match self.range.as_ref() {
Some(range) => format!("{} {} {}", Self::COMMAND, self.name, range),
None => format!("{} {}", Self::COMMAND, self.name),
Some(range) => format!("{} {} {}\n", Self::COMMAND, self.name, range),
None => format!("{} {}\n", Self::COMMAND, self.name),
}
}

View File

@@ -36,16 +36,16 @@ impl CommandRequest<'_> for LoadRequest {
fn serialize(&self) -> String {
match (self.range.as_ref(), self.position.as_ref()) {
(Some(range), Some(pos)) => {
format!("{} {} {} {}", Self::COMMAND, self.name, range, pos)
format!("{} {} {} {}\n", Self::COMMAND, self.name, range, pos)
}
(Some(range), None) => {
format!("{} {} {}", Self::COMMAND, self.name, range)
format!("{} {} {}\n", Self::COMMAND, self.name, range)
}
(None, Some(pos)) => {
format!("{} {} {}", Self::COMMAND, self.name, pos)
format!("{} {} {}\n", Self::COMMAND, self.name, pos)
}
(None, None) => {
format!("{} {}", Self::COMMAND, self.name)
format!("{} {}\n", Self::COMMAND, self.name)
}
}
}

View File

@@ -37,7 +37,7 @@ impl CommandRequest<'_> for PlaylistAddRequest {
match self.position {
Some(pos) => {
format!(
"{} {} {} {}",
"{} {} {} {}\n",
Self::COMMAND,
self.playlist_name,
self.uri,
@@ -45,7 +45,7 @@ impl CommandRequest<'_> for PlaylistAddRequest {
)
}
None => {
format!("{} {} {}", Self::COMMAND, self.playlist_name, self.uri)
format!("{} {} {}\n", Self::COMMAND, self.playlist_name, self.uri)
}
}
}

View File

@@ -34,7 +34,12 @@ impl CommandRequest<'_> for PlaylistDeleteRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.playlist_name, self.position)
format!(
"{} {} {}\n",
Self::COMMAND,
self.playlist_name,
self.position
)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -37,7 +37,7 @@ impl CommandRequest<'_> for PlaylistMoveRequest {
match self.from.as_ref() {
Some(from) => {
format!(
"{} {} {} {}",
"{} {} {} {}\n",
Self::COMMAND,
self.playlist_name,
from,
@@ -45,7 +45,7 @@ impl CommandRequest<'_> for PlaylistMoveRequest {
)
}
None => {
format!("{} {} {}", Self::COMMAND, self.playlist_name, self.to)
format!("{} {} {}\n", Self::COMMAND, self.playlist_name, self.to)
}
}
}

View File

@@ -30,7 +30,7 @@ impl CommandRequest<'_> for RenameRequest {
}
fn serialize(&self) -> String {
format!("{} {} {}", Self::COMMAND, self.old_name, self.new_name)
format!("{} {} {}\n", Self::COMMAND, self.old_name, self.new_name)
}
fn parse(mut parts: RequestTokenizer<'_>) -> Result<Self, RequestParserError> {

View File

@@ -34,10 +34,10 @@ impl CommandRequest<'_> for SaveRequest {
fn serialize(&self) -> String {
match self.mode.as_ref() {
Some(mode) => {
format!("{} {} {}", Self::COMMAND, self.playlist_name, mode)
format!("{} {} {}\n", Self::COMMAND, self.playlist_name, mode)
}
None => {
format!("{} {}", Self::COMMAND, self.playlist_name)
format!("{} {}\n", Self::COMMAND, self.playlist_name)
}
}
}

View File

@@ -39,6 +39,7 @@ impl CommandRequest<'_> for SearchPlaylistRequest {
if let Some(range) = &self.range {
cmd.push_str(&format!(" {}", range));
}
cmd.push_str("\n");
cmd
}