7 ms·
I put the whole code in a separate branch for you: https://bitbucket.org/iopq/fizzbuzz-in-rust/src/920bd2bd1267d4bb495d114db6dbf396106962d4/src/lib.rs?at=error
by iopq 10y ago
I put the whole code in a separate branch for you:
https://bitbucket.org/iopq/fizzbuzz-in-rust/src/920bd2bd1267d4bb495d114db6dbf396106962d4/src/lib.rs?at=error&fileviewer=file-view-default https://bitbucket.org/iopq/fizzbuzz-in-rust/src/920bd2bd1267...
this doesn't work, so I want you to tell me why
- lmm 10y agoHmm fair enough, harder than I thought (I don't know Rust, the error just sounded sensible). It reads like the function you're passing into filter is supposed to be "lifetime-generic" taking a parameter whose lifetime comes from the for, but the function returned by apply has a fixed lifetime. But I can't see where it's getting the lifetime for that from, or what to do about it. I guess at that point I'd try adding an explicit lifetime to the return type of apply (or maybe an IDE could show it without having to write it)?
- iopq 10y agoThe problem is with the function `second` that I get from the other crate. If I replace the `second` function with my own implementation it works. But for the `second` implementation from tool.rs to work, Rust needs better higher ranked lifetime support. It would also work with a closure, but I wrote my code this way to avoid closures in the first place (I was going for point-free style). I basically just have to write my own function: https://bitbucket.org/iopq/fizzbuzz-in-rust/src/58bfa4c58c803b04451ae60fe06da4450aef9658/src/lib.rs?at=master&fileviewer=file-view-default#lib.rs-66:68 https://bitbucket.org/iopq/fizzbuzz-in-rust/src/58bfa4c58c80... this compiles, but it seems kind of pointless since I can only use this particular function in my case (because of the extra levels of references) if I could use the tool.rs version, it would automatically generate all the implementations I need using macros
- iopq 10y agoSomeone helped me with it: I had to change the `apply` function to dereference as well, that way it doesn't run into the lifetime issue. It has something to do with higher ranked lifetimes (the inability to express the higher ranked lifetime) This is the working version: https://bitbucket.org/iopq/fizzbuzz-in-rust/src/95451868e27ff1953512fa88afca626d88e9032e/src/lib.rs?at=master&fileviewer=file-view-default https://bitbucket.org/iopq/fizzbuzz-in-rust/src/95451868e27f...