Wednesday, 22 September 2021

Rust String, &str, OsStr

Rust は、もうやめようと思ってて。あまりにも理不尽。

  pub(crate) fn build_file_tester(name : String , size : u64) -> Result<FileTester, Error> {
    match File::create(Path::new(name) {

が全然通らなくって。OsStr がどうとかいうんだがまったく通らない。Java も new String(s) 連発ってあったけどな。

全部、&str にしろ

  pub(crate) fn build_file_tester(name : &str , size : u64) -> Result<FileTester, Error> {
    match File::create(Path::new(&name.into())) {

って書いてあって、それが正しいらしい。でも、

  pub(crate) fn build_file_tester<S>(name : S , size : u64) -> Result<FileTester, Error> where S: Into<String> {
    match File::create(Path::new(&name.into())) {

という具合に Generic で受けるという手もあるらしい。そうすると、String を値にしても通る。

さらに

  camel name を snake name にしろと、文句言ってくる

file name / module name をそうしろってわけか。いろいろ、うるさい。

いまいち、便利じゃない Result に「値を見ろ」と強要されるのもな。

No comments: