Song to_data change #62
42
src/song.rs
42
src/song.rs
@@ -1,4 +1,4 @@
|
|||||||
use std::io::{Read, Write};
|
use std::io::Write;
|
||||||
|
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@@ -90,26 +90,6 @@ impl Song {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Make this available as a function
|
|
||||||
pub fn to_data(&self) -> Result<Vec<u8>, std::io::Error> {
|
|
||||||
let path_result = self.song_path();
|
|
||||||
|
|
||||||
match path_result {
|
|
||||||
Ok(path) => {
|
|
||||||
let mut file = std::fs::File::open(path)?;
|
|
||||||
let mut buffer: Vec<u8> = Vec::new();
|
|
||||||
file.read_to_end(&mut buffer)?;
|
|
||||||
|
|
||||||
if buffer.is_empty() {
|
|
||||||
Err(std::io::Error::other("File is empty"))
|
|
||||||
} else {
|
|
||||||
Ok(buffer)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(er) => Err(er),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Make this available as a function
|
// TODO: Make this available as a function
|
||||||
pub fn generate_filename(&self, typ: types::MusicTypes, randomize: bool) -> String {
|
pub fn generate_filename(&self, typ: types::MusicTypes, randomize: bool) -> String {
|
||||||
let mut filename: String = String::new();
|
let mut filename: String = String::new();
|
||||||
@@ -172,6 +152,8 @@ impl Song {
|
|||||||
|
|
||||||
/// I/O operations for songs
|
/// I/O operations for songs
|
||||||
pub mod io {
|
pub mod io {
|
||||||
|
use std::io::Read;
|
||||||
|
|
||||||
/// Copies a song using the source song's data
|
/// Copies a song using the source song's data
|
||||||
pub fn copy_song(
|
pub fn copy_song(
|
||||||
song_source: &super::Song,
|
song_source: &super::Song,
|
||||||
@@ -201,4 +183,22 @@ pub mod io {
|
|||||||
Err(err) => Err(err),
|
Err(err) => Err(err),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Gets the raw file data of a song from the filesystem
|
||||||
|
pub fn to_data(song: &super::Song) -> Result<Vec<u8>, std::io::Error> {
|
||||||
|
match song.song_path() {
|
||||||
|
Ok(path) => {
|
||||||
|
let mut file = std::fs::File::open(path)?;
|
||||||
|
let mut buffer: Vec<u8> = Vec::new();
|
||||||
|
file.read_to_end(&mut buffer)?;
|
||||||
|
|
||||||
|
if buffer.is_empty() {
|
||||||
|
Err(std::io::Error::other("File is empty"))
|
||||||
|
} else {
|
||||||
|
Ok(buffer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(er) => Err(er),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -61,7 +61,7 @@ mod song_tests {
|
|||||||
Ok(buffer) => {
|
Ok(buffer) => {
|
||||||
assert_eq!(buffer.is_empty(), false);
|
assert_eq!(buffer.is_empty(), false);
|
||||||
|
|
||||||
match song.to_data() {
|
match song::io::to_data(&song) {
|
||||||
Ok(song_data) => {
|
Ok(song_data) => {
|
||||||
println!("Both files match");
|
println!("Both files match");
|
||||||
assert_eq!(buffer, song_data);
|
assert_eq!(buffer, song_data);
|
||||||
@@ -111,7 +111,7 @@ mod song_tests {
|
|||||||
println!("Directory: {:?}", song_cpy.directory);
|
println!("Directory: {:?}", song_cpy.directory);
|
||||||
println!("File to be created: {:?}", song_cpy.filename);
|
println!("File to be created: {:?}", song_cpy.filename);
|
||||||
|
|
||||||
match song::copy_song(&song, &mut song_cpy) {
|
match song::io::copy_song(&song, &mut song_cpy) {
|
||||||
Ok(_) => {}
|
Ok(_) => {}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
assert!(false, "Error copying song: Error: {err:?}")
|
assert!(false, "Error copying song: Error: {err:?}")
|
||||||
@@ -131,7 +131,7 @@ mod song_tests {
|
|||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
match song::copy_song(&song, &mut copied_song) {
|
match song::io::copy_song(&song, &mut copied_song) {
|
||||||
Ok(_) => {}
|
Ok(_) => {}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
assert!(false, "Error: {err:?}")
|
assert!(false, "Error: {err:?}")
|
||||||
|
Reference in New Issue
Block a user