String
#
fn main()
{
//String和&str的区别可自行百度
//空字符串
let s=String::new();
//可变字符串
let mut s1=String:from("123");
//追加字符串
s1.push_str("456");
//追加字符
s1.push("1");
}
json
#
use std::fs::File;
use serde_json::Value;
fn main(){
//解析io流文件
let f=File::open("test.txt").unwrap();
let json:Value=serde_json::from_reader(f).unwrap();
//let json:Value=serde_json::from_str(text).unwrap();
for i in json["data"].as_array().unwrap(){
println!("{}",i["name"].as_str().unwrap());
}
}
reqwest
#
use std::{time::{SystemTime, UNIX_EPOCH}};
fn get_time() -> String{
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_millis()
.to_string()
}
async fn post() -> Result<String, reqwest::Error>{
let client = reqwest::Client::new();
// let mut headers = HeaderMap::new();
// headers.insert("Content-Type", "application/json".parse().unwrap());
let time=get_time();
let data=[("phone","17340307464"),("password","d41d8cd98f00b204e9800998ecf8427e"),("countrycode",""),("rememberLogin","true"),("timerstamp",&time)];
Ok(client.post("https://music.163.com/weapi/login/cellphone").json(&data).send().await?.text().await?)
}
#[tokio::main]
async fn main() {
if let Ok(res) = post().await {
println!("{:#?}", res);
}
}
集合相关
#
fn main() {
let a = vec![(2, "aa"), (4, "c"), (3, "cc")];
let b = vec![(3, "cc"), (5, "ee"), (2, "aa")];
// 取交集
let intersect = a.iter().filter(|&u| b.contains(u)).collect::<Vec<_>>();
println!("a 和 b 交集是:{:?}", intersect);
// 取差集
let minusion = a.iter().filter(|&u| !b.contains(u)).collect::<Vec<_>>();
println!("a 和 b 差集是:{:?}", minusion);
// 取并集
let union = a
.iter()
.filter(|&u| !b.contains(u))
.chain(&b)
.collect::<Vec<_>>();
println!("a 和 b 并集是:{:?}", union);
// 取补集
let complement = a
.iter()
.filter(|&u| !b.contains(u))
.chain(b.iter().filter(|&u| !a.contains(u)))
.collect::<Vec<_>>();
println!("a 和 b 补集是:{:?}", complement);
}
lyric and add_pic
#
use metaflac::Tag;
use metaflac::block::PictureType::Media;
#[tokio::main]
async fn main() -> Result<(), reqwest::Error>{
let lyc="[00:09.74]群青色の空\n[00:11.88]自由なんてものは\n[00:14.02]手を伸ばすほどに遠く遠く飛んでく\n[00:16.80]ほら、海猫の歌が僕を笑っているんだ\n[00:21.28]夏の島に縛られた十六年間\n[00:25.08]長い前髪も伸び過ぎて捨てられたあの日みたい\n[00:29.32]どんな愛情も\n[00:30.50]ねえ、たったひと切れのパンより軽い(ライト)\n[00:32.80]生きているよ\n[00:34.43]神様にもきっと見捨てられている僕でも\n[00:40.10]追い風に白い帆を上げよう\n[00:43.92]君が留まり僕がゆくなら\n[00:47.76]いつか遠い海で会えるんだろう\n[00:51.56]きっとこの星はまあるいから\n[00:55.40]追い風に白い帆を上げよう\n[00:59.14]君が留まり僕がゆくなら\n[01:02.88]いつか遠い海で会えるんだろう\n[01:06.78]きっとこの星はまあるいから\n[01:25.62]潮の香りが染み込んでいる日だ\n[01:29.76]薄汚れた白い背中を押す風が吹いた\n[01:33.68]もし叶うなら愛されたいな\n[01:37.52]あたたかな胸に頰を埋め眠りたいな\n[01:41.38]雲を追うよ、風を切るマスト\n[01:45.02]僕を乗せた船はどこまでも\n[01:48.72]黄金島にもゆけるよ\n[01:50.60]地図はないけど\n[01:52.32]さあ、人魚たちの歌に手を叩こう\n[01:56.54]ナナナ……\n[02:11.53]追い風に白い帆を上げよう\n[02:15.30]君が留まり僕がゆくなら\n[02:19.16]いつか遠い海で会えるんだろう\n[02:22.92]きっとこの星はまあるいから\n[02:26.94]追い風に白い帆を上げよう\n[02:30.48]君が留まり僕がゆくなら\n[02:34.24]いつか遠い海で会えるんだろう\n[02:38.16]きっとこの星はまあるいから\n[02:47.54]まあるいから\n[02:55.42]まあるいから\n";
let mut tag = Tag::read_from_path("C:/test/rust/demo1/file/wcat.flac").unwrap();
let data=reqwest::get("https://p2.music.126.net/mog628G4JLNEMi-GpWxccQ==/109951164647211717.jpg").await?.bytes().await?.to_vec();
tag.add_picture("image/jpeg", Media, data);
let comment=tag.vorbis_comments_mut();
comment.set_lyrics(vec![lyc]);
tag.save().unwrap();
Ok(())
}