While you missed the mark here since typst has all the important stuff open (I wouldn't use the web interface even if it was free/open source), I appreciate that you're keeping an eye open.
If you were in r*ddit's rust community a few years ago, you probably would have been banned, just like me😄
A blog post from M$ mentioning Rust with zero code
=> straight to the top
A news article regurgitating the same thing a week later
=> straight to the top
Another news article two weeks later regurgitating the same thing, possibly with the addition of a random tweet from some M$ dev
=> straight to the top
Anyone not sucking nu-M$'s ****
=> banished to the bottom, or worse.
Things got so silly to the point where I made this jerk post (archive link) about one of these silly posts.
In case the wording tripped anyone, generators (blocks and functions) have been available for a while as an unstable feature.
This works (playground):
#![feature(gen_blocks)] gen fn gfn() -> i32 { for i in 1..=10 { yield i; } } fn gblock() -> impl Iterator<Item = i32> { gen { for i in 1..=10 { yield i; } } } fn main() { for i in gfn() { println!("{i} from gfn()"); } for i in gblock() { println!("{i} from gblock()"); } }Note that the block-in-fn version works better at this moment (from a developer's PoV) because
rust-analyzercurrently treatsgfn()as an i32 value. But the block-in-fn pattern works perfectly already.