diff --git a/minidisc-rs/src/netmd/base.rs b/minidisc-rs/src/netmd/base.rs index 36bd570..3f05e02 100644 --- a/minidisc-rs/src/netmd/base.rs +++ b/minidisc-rs/src/netmd/base.rs @@ -4,7 +4,7 @@ use std::error::Error; use std::time::Duration; // USB stuff -use nusb::transfer::{Control, ControlType, Recipient, RequestBuffer, ControlIn, ControlOut}; +use nusb::transfer::{Control, ControlIn, ControlOut, ControlType, Recipient, RequestBuffer}; use nusb::{Device, DeviceInfo, Interface}; const DEFAULT_TIMEOUT: Duration = Duration::new(10000, 0); @@ -146,16 +146,19 @@ impl NetMD { /// of the previous command, or the status pub async fn poll(&mut self) -> Result<(u16, [u8; 4]), Box> { // Create an array to store the result of the poll - let poll_result = match self.usb_interface.control_in( - ControlIn { + let poll_result = match self + .usb_interface + .control_in(ControlIn { control_type: ControlType::Vendor, recipient: Recipient::Interface, request: 0x01, value: 0, index: 0, length: 4, - } - ).await.into_result() { + }) + .await + .into_result() + { Ok(size) => size, Err(error) => return Err(error.into()), }; @@ -198,22 +201,28 @@ impl NetMD { true => 0xff, }; - match self.usb_interface.control_out( - ControlOut { + match self + .usb_interface + .control_out(ControlOut { control_type: ControlType::Vendor, recipient: Recipient::Interface, request, value: 0, index: 0, data: &command, - } - ).await.into_result() { + }) + .await + .into_result() + { Ok(_) => Ok(()), Err(error) => Err(error.into()), } } - pub async fn read_reply(&mut self, override_length: Option) -> Result, Box> { + pub async fn read_reply( + &mut self, + override_length: Option, + ) -> Result, Box> { self._read_reply(false, override_length).await } @@ -253,16 +262,18 @@ impl NetMD { }; // Create a buffer to fill with the result - let reply = self.usb_interface.control_in( - ControlIn { + let reply = self + .usb_interface + .control_in(ControlIn { control_type: ControlType::Vendor, recipient: Recipient::Interface, request, value: 0, index: 0, length, - } - ).await.into_result()?; + }) + .await + .into_result()?; Ok(reply) } @@ -292,7 +303,10 @@ impl NetMD { done -= to_read; let buffer = RequestBuffer::new(to_read); - let res = match self.usb_interface.bulk_in(BULK_READ_ENDPOINT, buffer).await + let res = match self + .usb_interface + .bulk_in(BULK_READ_ENDPOINT, buffer) + .await .into_result() { Ok(result) => result, @@ -306,10 +320,11 @@ impl NetMD { } pub async fn write_bulk(&mut self, data: Vec) -> Result> { - Ok( - self.usb_interface.bulk_out(BULK_WRITE_ENDPOINT, data).await - .into_result()? - .actual_length(), - ) + Ok(self + .usb_interface + .bulk_out(BULK_WRITE_ENDPOINT, data) + .await + .into_result()? + .actual_length()) } } diff --git a/minidisc-rs/src/netmd/interface.rs b/minidisc-rs/src/netmd/interface.rs index 5546ea1..f561851 100644 --- a/minidisc-rs/src/netmd/interface.rs +++ b/minidisc-rs/src/netmd/interface.rs @@ -346,7 +346,11 @@ impl NetMDInterface { Ok(result) } - async fn send_command(&mut self, query: &mut Vec, test: bool) -> Result<(), Box> { + async fn send_command( + &mut self, + query: &mut Vec, + test: bool, + ) -> Result<(), Box> { let status_byte = match test { true => Status::GeneralInquiry, false => Status::Control, @@ -966,7 +970,11 @@ impl NetMDInterface { } // Sets the title of the disc - pub async fn set_disc_title(&mut self, title: String, wchar: bool) -> Result<(), Box> { + pub async fn set_disc_title( + &mut self, + title: String, + wchar: bool, + ) -> Result<(), Box> { let current_title = self.raw_disc_title(wchar).await?; if current_title == title { return Err("Title is already the same".into()); @@ -1099,7 +1107,12 @@ impl NetMDInterface { Ok(()) } - async fn raw_track_info(&mut self, track: u16, p1: i32, p2: i32) -> Result, Box> { + async fn raw_track_info( + &mut self, + track: u16, + p1: i32, + p2: i32, + ) -> Result, Box> { self.change_descriptor_state(&Descriptor::AudioContentsTD, &DescriptorAction::OpenRead); let mut query = format_query( @@ -1167,7 +1180,10 @@ impl NetMDInterface { } /// Gets the length of a track as a `std::time::Duration` - pub async fn track_length(&mut self, track: u16) -> Result> { + pub async fn track_length( + &mut self, + track: u16, + ) -> Result> { Ok(self.track_lengths([track].into()).await?[0]) } @@ -1329,7 +1345,7 @@ impl NetMDInterface { * the root key. * * The leaf ID is a 8-byte constant - **/ + **/ pub async fn leaf_id(&mut self) -> Result, Box> { let mut query = format_query("1800 080046 f0030103 11 ff".to_string(), vec![])?; @@ -1381,7 +1397,10 @@ impl NetMDInterface { Ok(res[0].to_vec().unwrap()) } - pub async fn session_key_exchange(&mut self, hostnonce: Vec) -> Result, Box> { + pub async fn session_key_exchange( + &mut self, + hostnonce: Vec, + ) -> Result, Box> { if hostnonce.len() != 8 { return Err("Supplied host nonce length wrong".into()); } diff --git a/minidisc-rs/src/netmd/mappings.rs b/minidisc-rs/src/netmd/mappings.rs index bc06079..6dec72a 100644 --- a/minidisc-rs/src/netmd/mappings.rs +++ b/minidisc-rs/src/netmd/mappings.rs @@ -193,7 +193,6 @@ lazy_static! { ("。".to_string(), "。".to_string()), ("、".to_string(), "、".to_string()) ]); - pub static ref MAPPINGS_RU: HashMap = HashMap::from([ ("а".to_string(), "a".to_string()), ("б".to_string(), "b".to_string()), @@ -262,7 +261,6 @@ lazy_static! { ("Ю".to_string(), "Iu".to_string()), ("Я".to_string(), "Ia".to_string()) ]); - pub static ref MAPPINGS_DE: HashMap = HashMap::from([ ("Ä".to_string(), "Ae".to_string()), ("ä".to_string(), "ae".to_string()), @@ -272,287 +270,285 @@ lazy_static! { ("ü".to_string(), "ue".to_string()), ("ß".to_string(), "ss".to_string()) ]); - pub static ref MAPPINGS_HW: HashMap = HashMap::from([ - ("-".to_string(),"-".to_string()), - ("ー".to_string(),"-".to_string()), - ("ァ".to_string(),"ァ".to_string()), - ("ア".to_string(),"ア".to_string()), - ("ィ".to_string(),"ィ".to_string()), - ("イ".to_string(),"イ".to_string()), - ("ゥ".to_string(),"ゥ".to_string()), - ("ウ".to_string(),"ウ".to_string()), - ("ェ".to_string(),"ェ".to_string()), - ("エ".to_string(),"エ".to_string()), - ("ォ".to_string(),"ォ".to_string()), - ("オ".to_string(),"オ".to_string()), - ("カ".to_string(),"カ".to_string()), - ("ガ".to_string(),"ガ".to_string()), - ("キ".to_string(),"キ".to_string()), - ("ギ".to_string(),"ギ".to_string()), - ("ク".to_string(),"ク".to_string()), - ("グ".to_string(),"グ".to_string()), - ("ケ".to_string(),"ケ".to_string()), - ("ゲ".to_string(),"ゲ".to_string()), - ("コ".to_string(),"コ".to_string()), - ("ゴ".to_string(),"ゴ".to_string()), - ("サ".to_string(),"サ".to_string()), - ("ザ".to_string(),"ザ".to_string()), - ("シ".to_string(),"シ".to_string()), - ("ジ".to_string(),"ジ".to_string()), - ("ス".to_string(),"ス".to_string()), - ("ズ".to_string(),"ズ".to_string()), - ("セ".to_string(),"セ".to_string()), - ("ゼ".to_string(),"ゼ".to_string()), - ("ソ".to_string(),"ソ".to_string()), - ("ゾ".to_string(),"ゾ".to_string()), - ("タ".to_string(),"タ".to_string()), - ("ダ".to_string(),"ダ".to_string()), - ("チ".to_string(),"チ".to_string()), - ("ヂ".to_string(),"ヂ".to_string()), - ("ッ".to_string(),"ッ".to_string()), - ("ツ".to_string(),"ツ".to_string()), - ("ヅ".to_string(),"ヅ".to_string()), - ("テ".to_string(),"テ".to_string()), - ("デ".to_string(),"デ".to_string()), - ("ト".to_string(),"ト".to_string()), - ("ド".to_string(),"ド".to_string()), - ("ナ".to_string(),"ナ".to_string()), - ("ニ".to_string(),"ニ".to_string()), - ("ヌ".to_string(),"ヌ".to_string()), - ("ネ".to_string(),"ネ".to_string()), - ("ノ".to_string(),"ノ".to_string()), - ("ハ".to_string(),"ハ".to_string()), - ("バ".to_string(),"バ".to_string()), - ("パ".to_string(),"パ".to_string()), - ("ヒ".to_string(),"ヒ".to_string()), - ("ビ".to_string(),"ビ".to_string()), - ("ピ".to_string(),"ピ".to_string()), - ("フ".to_string(),"フ".to_string()), - ("ブ".to_string(),"ブ".to_string()), - ("プ".to_string(),"プ".to_string()), - ("ヘ".to_string(),"ヘ".to_string()), - ("ベ".to_string(),"ベ".to_string()), - ("ペ".to_string(),"ペ".to_string()), - ("ホ".to_string(),"ホ".to_string()), - ("ボ".to_string(),"ボ".to_string()), - ("ポ".to_string(),"ポ".to_string()), - ("マ".to_string(),"マ".to_string()), - ("ミ".to_string(),"ミ".to_string()), - ("ム".to_string(),"ム".to_string()), - ("メ".to_string(),"メ".to_string()), - ("モ".to_string(),"モ".to_string()), - ("ャ".to_string(),"ャ".to_string()), - ("ヤ".to_string(),"ヤ".to_string()), - ("ュ".to_string(),"ュ".to_string()), - ("ユ".to_string(),"ユ".to_string()), - ("ョ".to_string(),"ョ".to_string()), - ("ヨ".to_string(),"ヨ".to_string()), - ("ラ".to_string(),"ラ".to_string()), - ("リ".to_string(),"リ".to_string()), - ("ル".to_string(),"ル".to_string()), - ("レ".to_string(),"レ".to_string()), - ("ロ".to_string(),"ロ".to_string()), - ("ワ".to_string(),"ワ".to_string()), - ("ヲ".to_string(),"ヲ".to_string()), - ("ン".to_string(),"ン".to_string()), - ("ー".to_string(),"-".to_string()), - ("ヮ".to_string(),"ヮ".to_string()), - ("ヰ".to_string(),"ヰ".to_string()), - ("ヱ".to_string(),"ヱ".to_string()), - ("ヵ".to_string(),"ヵ".to_string()), - ("ヶ".to_string(),"ヶ".to_string()), - ("ヴ".to_string(),"ヴ".to_string()), - ("ヽ".to_string(),"ヽ".to_string()), - ("ヾ".to_string(),"ヾ".to_string()), - ("・".to_string(),"・".to_string()), - ("「".to_string(),"「".to_string()), - ("」".to_string(),"」".to_string()), - ("。".to_string(),"。".to_string()), - ("、".to_string(),"、".to_string()), - ("!".to_string(),"!".to_string()), - (""".to_string(),"\"".to_string()), - ("#".to_string(),"#".to_string()), - ("$".to_string(),"$".to_string()), - ("%".to_string(),"%".to_string()), - ("&".to_string(),"&".to_string()), - ("'".to_string(),"'".to_string()), - ("(".to_string(),"(".to_string()), - (")".to_string(),")".to_string()), - ("*".to_string(),"*".to_string()), - ("+".to_string(),"+".to_string()), - (",".to_string(),",".to_string()), - (".".to_string(),".".to_string()), - ("/".to_string(),"/".to_string()), - (":".to_string(),":".to_string()), - (";".to_string(),";".to_string()), - ("<".to_string(),"<".to_string()), - ("=".to_string(),"=".to_string()), - (">".to_string(),">".to_string()), - ("?".to_string(),"?".to_string()), - ("@".to_string(),"@".to_string()), - ("A".to_string(),"A".to_string()), - ("B".to_string(),"B".to_string()), - ("C".to_string(),"C".to_string()), - ("D".to_string(),"D".to_string()), - ("E".to_string(),"E".to_string()), - ("F".to_string(),"F".to_string()), - ("G".to_string(),"G".to_string()), - ("H".to_string(),"H".to_string()), - ("I".to_string(),"I".to_string()), - ("J".to_string(),"J".to_string()), - ("K".to_string(),"K".to_string()), - ("L".to_string(),"L".to_string()), - ("M".to_string(),"M".to_string()), - ("N".to_string(),"N".to_string()), - ("O".to_string(),"O".to_string()), - ("P".to_string(),"P".to_string()), - ("Q".to_string(),"Q".to_string()), - ("R".to_string(),"R".to_string()), - ("S".to_string(),"S".to_string()), - ("T".to_string(),"T".to_string()), - ("U".to_string(),"U".to_string()), - ("V".to_string(),"V".to_string()), - ("W".to_string(),"W".to_string()), - ("X".to_string(),"X".to_string()), - ("Y".to_string(),"Y".to_string()), - ("Z".to_string(),"Z".to_string()), - ("[".to_string(),"[".to_string()), - ("\".to_string(),"\\".to_string()), - ("]".to_string(),"]".to_string()), - ("^".to_string(),"^".to_string()), - ("_".to_string(),"_".to_string()), - ("`".to_string(),"`".to_string()), - ("a".to_string(),"a".to_string()), - ("b".to_string(),"b".to_string()), - ("c".to_string(),"c".to_string()), - ("d".to_string(),"d".to_string()), - ("e".to_string(),"e".to_string()), - ("f".to_string(),"f".to_string()), - ("g".to_string(),"g".to_string()), - ("h".to_string(),"h".to_string()), - ("i".to_string(),"i".to_string()), - ("j".to_string(),"j".to_string()), - ("k".to_string(),"k".to_string()), - ("l".to_string(),"l".to_string()), - ("m".to_string(),"m".to_string()), - ("n".to_string(),"n".to_string()), - ("o".to_string(),"o".to_string()), - ("p".to_string(),"p".to_string()), - ("q".to_string(),"q".to_string()), - ("r".to_string(),"r".to_string()), - ("s".to_string(),"s".to_string()), - ("t".to_string(),"t".to_string()), - ("u".to_string(),"u".to_string()), - ("v".to_string(),"v".to_string()), - ("w".to_string(),"w".to_string()), - ("x".to_string(),"x".to_string()), - ("y".to_string(),"y".to_string()), - ("z".to_string(),"z".to_string()), - ("{".to_string(),"{".to_string()), - ("|".to_string(),"|".to_string()), - ("}".to_string(),"}".to_string()), - ("~".to_string(),"~".to_string()), - (" ".to_string()," ".to_string()), - ("0".to_string(),"0".to_string()), - ("1".to_string(),"1".to_string()), - ("2".to_string(),"2".to_string()), - ("3".to_string(),"3".to_string()), - ("4".to_string(),"4".to_string()), - ("5".to_string(),"5".to_string()), - ("6".to_string(),"6".to_string()), - ("7".to_string(),"7".to_string()), - ("8".to_string(),"8".to_string()), - ("9".to_string(),"9".to_string()), - ("ぁ".to_string(),"ァ".to_string()), - ("あ".to_string(),"ア".to_string()), - ("ぃ".to_string(),"ィ".to_string()), - ("い".to_string(),"イ".to_string()), - ("ぅ".to_string(),"ゥ".to_string()), - ("う".to_string(),"ウ".to_string()), - ("ぇ".to_string(),"ェ".to_string()), - ("え".to_string(),"エ".to_string()), - ("ぉ".to_string(),"ォ".to_string()), - ("お".to_string(),"オ".to_string()), - ("か".to_string(),"カ".to_string()), - ("が".to_string(),"ガ".to_string()), - ("き".to_string(),"キ".to_string()), - ("ぎ".to_string(),"ギ".to_string()), - ("く".to_string(),"ク".to_string()), - ("ぐ".to_string(),"グ".to_string()), - ("け".to_string(),"ケ".to_string()), - ("げ".to_string(),"ゲ".to_string()), - ("こ".to_string(),"コ".to_string()), - ("ご".to_string(),"ゴ".to_string()), - ("さ".to_string(),"サ".to_string()), - ("ざ".to_string(),"ザ".to_string()), - ("し".to_string(),"シ".to_string()), - ("じ".to_string(),"ジ".to_string()), - ("す".to_string(),"ス".to_string()), - ("ず".to_string(),"ズ".to_string()), - ("せ".to_string(),"セ".to_string()), - ("ぜ".to_string(),"ゼ".to_string()), - ("そ".to_string(),"ソ".to_string()), - ("ぞ".to_string(),"ゾ".to_string()), - ("た".to_string(),"タ".to_string()), - ("だ".to_string(),"ダ".to_string()), - ("ち".to_string(),"チ".to_string()), - ("ぢ".to_string(),"ヂ".to_string()), - ("っ".to_string(),"ッ".to_string()), - ("つ".to_string(),"ツ".to_string()), - ("づ".to_string(),"ヅ".to_string()), - ("て".to_string(),"テ".to_string()), - ("で".to_string(),"デ".to_string()), - ("と".to_string(),"ト".to_string()), - ("ど".to_string(),"ド".to_string()), - ("な".to_string(),"ナ".to_string()), - ("に".to_string(),"ニ".to_string()), - ("ぬ".to_string(),"ヌ".to_string()), - ("ね".to_string(),"ネ".to_string()), - ("の".to_string(),"ノ".to_string()), - ("は".to_string(),"ハ".to_string()), - ("ば".to_string(),"バ".to_string()), - ("ぱ".to_string(),"パ".to_string()), - ("ひ".to_string(),"ヒ".to_string()), - ("び".to_string(),"ビ".to_string()), - ("ぴ".to_string(),"ピ".to_string()), - ("ふ".to_string(),"フ".to_string()), - ("ぶ".to_string(),"ブ".to_string()), - ("ぷ".to_string(),"プ".to_string()), - ("へ".to_string(),"ヘ".to_string()), - ("べ".to_string(),"ベ".to_string()), - ("ぺ".to_string(),"ペ".to_string()), - ("ほ".to_string(),"ホ".to_string()), - ("ぼ".to_string(),"ボ".to_string()), - ("ぽ".to_string(),"ポ".to_string()), - ("ま".to_string(),"マ".to_string()), - ("み".to_string(),"ミ".to_string()), - ("む".to_string(),"ム".to_string()), - ("め".to_string(),"メ".to_string()), - ("も".to_string(),"モ".to_string()), - ("ゃ".to_string(),"ャ".to_string()), - ("や".to_string(),"ヤ".to_string()), - ("ゅ".to_string(),"ュ".to_string()), - ("ゆ".to_string(),"ユ".to_string()), - ("ょ".to_string(),"ョ".to_string()), - ("よ".to_string(),"ヨ".to_string()), - ("ら".to_string(),"ラ".to_string()), - ("り".to_string(),"リ".to_string()), - ("る".to_string(),"ル".to_string()), - ("れ".to_string(),"レ".to_string()), - ("ろ".to_string(),"ロ".to_string()), - ("わ".to_string(),"ワ".to_string()), - ("を".to_string(),"ヲ".to_string()), - ("ん".to_string(),"ン".to_string()), - ("ゎ".to_string(),"ヮ".to_string()), - ("ゐ".to_string(),"ヰ".to_string()), - ("ゑ".to_string(),"ヱ".to_string()), - ("ゕ".to_string(),"ヵ".to_string()), - ("ゖ".to_string(),"ヶ".to_string()), - ("ゔ".to_string(),"ヴ".to_string()), - ("ゝ".to_string(),"ヽ".to_string()), - ("ゞ".to_string(),"ヾ".to_string()), + ("-".to_string(), "-".to_string()), + ("ー".to_string(), "-".to_string()), + ("ァ".to_string(), "ァ".to_string()), + ("ア".to_string(), "ア".to_string()), + ("ィ".to_string(), "ィ".to_string()), + ("イ".to_string(), "イ".to_string()), + ("ゥ".to_string(), "ゥ".to_string()), + ("ウ".to_string(), "ウ".to_string()), + ("ェ".to_string(), "ェ".to_string()), + ("エ".to_string(), "エ".to_string()), + ("ォ".to_string(), "ォ".to_string()), + ("オ".to_string(), "オ".to_string()), + ("カ".to_string(), "カ".to_string()), + ("ガ".to_string(), "ガ".to_string()), + ("キ".to_string(), "キ".to_string()), + ("ギ".to_string(), "ギ".to_string()), + ("ク".to_string(), "ク".to_string()), + ("グ".to_string(), "グ".to_string()), + ("ケ".to_string(), "ケ".to_string()), + ("ゲ".to_string(), "ゲ".to_string()), + ("コ".to_string(), "コ".to_string()), + ("ゴ".to_string(), "ゴ".to_string()), + ("サ".to_string(), "サ".to_string()), + ("ザ".to_string(), "ザ".to_string()), + ("シ".to_string(), "シ".to_string()), + ("ジ".to_string(), "ジ".to_string()), + ("ス".to_string(), "ス".to_string()), + ("ズ".to_string(), "ズ".to_string()), + ("セ".to_string(), "セ".to_string()), + ("ゼ".to_string(), "ゼ".to_string()), + ("ソ".to_string(), "ソ".to_string()), + ("ゾ".to_string(), "ゾ".to_string()), + ("タ".to_string(), "タ".to_string()), + ("ダ".to_string(), "ダ".to_string()), + ("チ".to_string(), "チ".to_string()), + ("ヂ".to_string(), "ヂ".to_string()), + ("ッ".to_string(), "ッ".to_string()), + ("ツ".to_string(), "ツ".to_string()), + ("ヅ".to_string(), "ヅ".to_string()), + ("テ".to_string(), "テ".to_string()), + ("デ".to_string(), "デ".to_string()), + ("ト".to_string(), "ト".to_string()), + ("ド".to_string(), "ド".to_string()), + ("ナ".to_string(), "ナ".to_string()), + ("ニ".to_string(), "ニ".to_string()), + ("ヌ".to_string(), "ヌ".to_string()), + ("ネ".to_string(), "ネ".to_string()), + ("ノ".to_string(), "ノ".to_string()), + ("ハ".to_string(), "ハ".to_string()), + ("バ".to_string(), "バ".to_string()), + ("パ".to_string(), "パ".to_string()), + ("ヒ".to_string(), "ヒ".to_string()), + ("ビ".to_string(), "ビ".to_string()), + ("ピ".to_string(), "ピ".to_string()), + ("フ".to_string(), "フ".to_string()), + ("ブ".to_string(), "ブ".to_string()), + ("プ".to_string(), "プ".to_string()), + ("ヘ".to_string(), "ヘ".to_string()), + ("ベ".to_string(), "ベ".to_string()), + ("ペ".to_string(), "ペ".to_string()), + ("ホ".to_string(), "ホ".to_string()), + ("ボ".to_string(), "ボ".to_string()), + ("ポ".to_string(), "ポ".to_string()), + ("マ".to_string(), "マ".to_string()), + ("ミ".to_string(), "ミ".to_string()), + ("ム".to_string(), "ム".to_string()), + ("メ".to_string(), "メ".to_string()), + ("モ".to_string(), "モ".to_string()), + ("ャ".to_string(), "ャ".to_string()), + ("ヤ".to_string(), "ヤ".to_string()), + ("ュ".to_string(), "ュ".to_string()), + ("ユ".to_string(), "ユ".to_string()), + ("ョ".to_string(), "ョ".to_string()), + ("ヨ".to_string(), "ヨ".to_string()), + ("ラ".to_string(), "ラ".to_string()), + ("リ".to_string(), "リ".to_string()), + ("ル".to_string(), "ル".to_string()), + ("レ".to_string(), "レ".to_string()), + ("ロ".to_string(), "ロ".to_string()), + ("ワ".to_string(), "ワ".to_string()), + ("ヲ".to_string(), "ヲ".to_string()), + ("ン".to_string(), "ン".to_string()), + ("ー".to_string(), "-".to_string()), + ("ヮ".to_string(), "ヮ".to_string()), + ("ヰ".to_string(), "ヰ".to_string()), + ("ヱ".to_string(), "ヱ".to_string()), + ("ヵ".to_string(), "ヵ".to_string()), + ("ヶ".to_string(), "ヶ".to_string()), + ("ヴ".to_string(), "ヴ".to_string()), + ("ヽ".to_string(), "ヽ".to_string()), + ("ヾ".to_string(), "ヾ".to_string()), + ("・".to_string(), "・".to_string()), + ("「".to_string(), "「".to_string()), + ("」".to_string(), "」".to_string()), + ("。".to_string(), "。".to_string()), + ("、".to_string(), "、".to_string()), + ("!".to_string(), "!".to_string()), + (""".to_string(), "\"".to_string()), + ("#".to_string(), "#".to_string()), + ("$".to_string(), "$".to_string()), + ("%".to_string(), "%".to_string()), + ("&".to_string(), "&".to_string()), + ("'".to_string(), "'".to_string()), + ("(".to_string(), "(".to_string()), + (")".to_string(), ")".to_string()), + ("*".to_string(), "*".to_string()), + ("+".to_string(), "+".to_string()), + (",".to_string(), ",".to_string()), + (".".to_string(), ".".to_string()), + ("/".to_string(), "/".to_string()), + (":".to_string(), ":".to_string()), + (";".to_string(), ";".to_string()), + ("<".to_string(), "<".to_string()), + ("=".to_string(), "=".to_string()), + (">".to_string(), ">".to_string()), + ("?".to_string(), "?".to_string()), + ("@".to_string(), "@".to_string()), + ("A".to_string(), "A".to_string()), + ("B".to_string(), "B".to_string()), + ("C".to_string(), "C".to_string()), + ("D".to_string(), "D".to_string()), + ("E".to_string(), "E".to_string()), + ("F".to_string(), "F".to_string()), + ("G".to_string(), "G".to_string()), + ("H".to_string(), "H".to_string()), + ("I".to_string(), "I".to_string()), + ("J".to_string(), "J".to_string()), + ("K".to_string(), "K".to_string()), + ("L".to_string(), "L".to_string()), + ("M".to_string(), "M".to_string()), + ("N".to_string(), "N".to_string()), + ("O".to_string(), "O".to_string()), + ("P".to_string(), "P".to_string()), + ("Q".to_string(), "Q".to_string()), + ("R".to_string(), "R".to_string()), + ("S".to_string(), "S".to_string()), + ("T".to_string(), "T".to_string()), + ("U".to_string(), "U".to_string()), + ("V".to_string(), "V".to_string()), + ("W".to_string(), "W".to_string()), + ("X".to_string(), "X".to_string()), + ("Y".to_string(), "Y".to_string()), + ("Z".to_string(), "Z".to_string()), + ("[".to_string(), "[".to_string()), + ("\".to_string(), "\\".to_string()), + ("]".to_string(), "]".to_string()), + ("^".to_string(), "^".to_string()), + ("_".to_string(), "_".to_string()), + ("`".to_string(), "`".to_string()), + ("a".to_string(), "a".to_string()), + ("b".to_string(), "b".to_string()), + ("c".to_string(), "c".to_string()), + ("d".to_string(), "d".to_string()), + ("e".to_string(), "e".to_string()), + ("f".to_string(), "f".to_string()), + ("g".to_string(), "g".to_string()), + ("h".to_string(), "h".to_string()), + ("i".to_string(), "i".to_string()), + ("j".to_string(), "j".to_string()), + ("k".to_string(), "k".to_string()), + ("l".to_string(), "l".to_string()), + ("m".to_string(), "m".to_string()), + ("n".to_string(), "n".to_string()), + ("o".to_string(), "o".to_string()), + ("p".to_string(), "p".to_string()), + ("q".to_string(), "q".to_string()), + ("r".to_string(), "r".to_string()), + ("s".to_string(), "s".to_string()), + ("t".to_string(), "t".to_string()), + ("u".to_string(), "u".to_string()), + ("v".to_string(), "v".to_string()), + ("w".to_string(), "w".to_string()), + ("x".to_string(), "x".to_string()), + ("y".to_string(), "y".to_string()), + ("z".to_string(), "z".to_string()), + ("{".to_string(), "{".to_string()), + ("|".to_string(), "|".to_string()), + ("}".to_string(), "}".to_string()), + ("~".to_string(), "~".to_string()), + (" ".to_string(), " ".to_string()), + ("0".to_string(), "0".to_string()), + ("1".to_string(), "1".to_string()), + ("2".to_string(), "2".to_string()), + ("3".to_string(), "3".to_string()), + ("4".to_string(), "4".to_string()), + ("5".to_string(), "5".to_string()), + ("6".to_string(), "6".to_string()), + ("7".to_string(), "7".to_string()), + ("8".to_string(), "8".to_string()), + ("9".to_string(), "9".to_string()), + ("ぁ".to_string(), "ァ".to_string()), + ("あ".to_string(), "ア".to_string()), + ("ぃ".to_string(), "ィ".to_string()), + ("い".to_string(), "イ".to_string()), + ("ぅ".to_string(), "ゥ".to_string()), + ("う".to_string(), "ウ".to_string()), + ("ぇ".to_string(), "ェ".to_string()), + ("え".to_string(), "エ".to_string()), + ("ぉ".to_string(), "ォ".to_string()), + ("お".to_string(), "オ".to_string()), + ("か".to_string(), "カ".to_string()), + ("が".to_string(), "ガ".to_string()), + ("き".to_string(), "キ".to_string()), + ("ぎ".to_string(), "ギ".to_string()), + ("く".to_string(), "ク".to_string()), + ("ぐ".to_string(), "グ".to_string()), + ("け".to_string(), "ケ".to_string()), + ("げ".to_string(), "ゲ".to_string()), + ("こ".to_string(), "コ".to_string()), + ("ご".to_string(), "ゴ".to_string()), + ("さ".to_string(), "サ".to_string()), + ("ざ".to_string(), "ザ".to_string()), + ("し".to_string(), "シ".to_string()), + ("じ".to_string(), "ジ".to_string()), + ("す".to_string(), "ス".to_string()), + ("ず".to_string(), "ズ".to_string()), + ("せ".to_string(), "セ".to_string()), + ("ぜ".to_string(), "ゼ".to_string()), + ("そ".to_string(), "ソ".to_string()), + ("ぞ".to_string(), "ゾ".to_string()), + ("た".to_string(), "タ".to_string()), + ("だ".to_string(), "ダ".to_string()), + ("ち".to_string(), "チ".to_string()), + ("ぢ".to_string(), "ヂ".to_string()), + ("っ".to_string(), "ッ".to_string()), + ("つ".to_string(), "ツ".to_string()), + ("づ".to_string(), "ヅ".to_string()), + ("て".to_string(), "テ".to_string()), + ("で".to_string(), "デ".to_string()), + ("と".to_string(), "ト".to_string()), + ("ど".to_string(), "ド".to_string()), + ("な".to_string(), "ナ".to_string()), + ("に".to_string(), "ニ".to_string()), + ("ぬ".to_string(), "ヌ".to_string()), + ("ね".to_string(), "ネ".to_string()), + ("の".to_string(), "ノ".to_string()), + ("は".to_string(), "ハ".to_string()), + ("ば".to_string(), "バ".to_string()), + ("ぱ".to_string(), "パ".to_string()), + ("ひ".to_string(), "ヒ".to_string()), + ("び".to_string(), "ビ".to_string()), + ("ぴ".to_string(), "ピ".to_string()), + ("ふ".to_string(), "フ".to_string()), + ("ぶ".to_string(), "ブ".to_string()), + ("ぷ".to_string(), "プ".to_string()), + ("へ".to_string(), "ヘ".to_string()), + ("べ".to_string(), "ベ".to_string()), + ("ぺ".to_string(), "ペ".to_string()), + ("ほ".to_string(), "ホ".to_string()), + ("ぼ".to_string(), "ボ".to_string()), + ("ぽ".to_string(), "ポ".to_string()), + ("ま".to_string(), "マ".to_string()), + ("み".to_string(), "ミ".to_string()), + ("む".to_string(), "ム".to_string()), + ("め".to_string(), "メ".to_string()), + ("も".to_string(), "モ".to_string()), + ("ゃ".to_string(), "ャ".to_string()), + ("や".to_string(), "ヤ".to_string()), + ("ゅ".to_string(), "ュ".to_string()), + ("ゆ".to_string(), "ユ".to_string()), + ("ょ".to_string(), "ョ".to_string()), + ("よ".to_string(), "ヨ".to_string()), + ("ら".to_string(), "ラ".to_string()), + ("り".to_string(), "リ".to_string()), + ("る".to_string(), "ル".to_string()), + ("れ".to_string(), "レ".to_string()), + ("ろ".to_string(), "ロ".to_string()), + ("わ".to_string(), "ワ".to_string()), + ("を".to_string(), "ヲ".to_string()), + ("ん".to_string(), "ン".to_string()), + ("ゎ".to_string(), "ヮ".to_string()), + ("ゐ".to_string(), "ヰ".to_string()), + ("ゑ".to_string(), "ヱ".to_string()), + ("ゕ".to_string(), "ヵ".to_string()), + ("ゖ".to_string(), "ヶ".to_string()), + ("ゔ".to_string(), "ヴ".to_string()), + ("ゝ".to_string(), "ヽ".to_string()), + ("ゞ".to_string(), "ヾ".to_string()), ]); - pub static ref ALLOWED_HW_KANA: Vec = MAPPINGS_HW.values().cloned().collect(); } diff --git a/minidisc-rs/src/netmd/mod.rs b/minidisc-rs/src/netmd/mod.rs index af8d317..30b4ed4 100644 --- a/minidisc-rs/src/netmd/mod.rs +++ b/minidisc-rs/src/netmd/mod.rs @@ -6,6 +6,6 @@ mod base; pub mod interface; +mod mappings; mod query_utils; mod utils; -mod mappings; diff --git a/minidisc-rs/src/netmd/query_utils.rs b/minidisc-rs/src/netmd/query_utils.rs index d3a8b20..f008a43 100644 --- a/minidisc-rs/src/netmd/query_utils.rs +++ b/minidisc-rs/src/netmd/query_utils.rs @@ -3,7 +3,7 @@ use lazy_static::lazy_static; use std::collections::hash_map::HashMap; use std::error::Error; -lazy_static!{ +lazy_static! { /// %b, w, d, q - explained above (can have endiannes overriden by '>' and '<' operators, f. ex. %>d %, -) -> Result, Box> { +pub fn format_query(format: String, args: Vec) -> Result, Box> { if DEBUG { println!("SENT>>> F: {}", format); } diff --git a/minidisc-rs/src/netmd/utils.rs b/minidisc-rs/src/netmd/utils.rs index 3bb1a95..ced7644 100644 --- a/minidisc-rs/src/netmd/utils.rs +++ b/minidisc-rs/src/netmd/utils.rs @@ -59,9 +59,7 @@ pub fn half_width_to_full_width_range(range: &str) -> String { .collect() } -pub fn get_bytes( - iterator: &mut IntoIter, -) -> Result<[u8; S], Box> { +pub fn get_bytes(iterator: &mut IntoIter) -> Result<[u8; S], Box> { let byte_vec: Vec = iterator.take(S).collect(); let bytes: [u8; S] = byte_vec.try_into().unwrap(); @@ -170,5 +168,7 @@ pub fn agressive_sanitize_title(title: &str) -> String { pub fn time_to_duration(time: &Vec) -> std::time::Duration { assert_eq!(time.len(), 4); - std::time::Duration::from_micros((time[0] * 3600000000) + (time[1] * 60000000) + (time[2] * 1000000) + (time[3] * 11600)) + std::time::Duration::from_micros( + (time[0] * 3600000000) + (time[1] * 60000000) + (time[2] * 1000000) + (time[3] * 11600), + ) }