News for hackers. Stuff that matters.
Re:First Rust Code Shows Up in the Windows 11 Kernel by qaq on Saturday May 13, 2023 @01:58AM (#35926003)
async fn do_health_check_par<HC>(hc: HC) where HC: HealthCheck + Send + 'static, HC::check(): Send, // <-- associated return type { tokio::task::spawn(async move { if !hc.check().await { log_health_check_failure().await; } }); }

Hmm I think for 95% of the people sticking to something like Swift would work out better for them

Re:First Rust Code Shows Up in the Windows 11 Kernel by hgomersall on Saturday May 13, 2023 @03:04AM (#35926289)
Are you saying 95% of use cases require spawning new tasks within the trait implementation based on argument futures? Or are you making a more general comment about rust generics? The MVP looks about as clean as I could hope for most use cases.
Re:First Rust Code Shows Up in the Windows 11 Kernel by qaq on Saturday May 13, 2023 @03:46AM (#35926466)
I am saying that in web services you will frequently use async functions that look like async fn do_blah(db_repo: impl DBRepo ...) {...} and are executed on async-std or Tokio
Re:First Rust Code Shows Up in the Windows 11 Kernel by hgomersall on Saturday May 13, 2023 @06:19AM (#35927058)
That will work. It only needs the additional bounds if you want to spawn that as a new task.
Re:First Rust Code Shows Up in the Windows 11 Kernel by qaq on Saturday May 13, 2023 @06:52AM (#35927200)
so if I am doing async calls on DBRepo inside that function they can not be moved to a different thread by a runtime like tokio?
Re:First Rust Code Shows Up in the Windows 11 Kernel by jen20 on Saturday May 13, 2023 @09:01AM (#35927966)
One would typically not spawn those - as I understand it you need the type constraints if calling “tokio::spawn” (or some equivalent) but not if simply calling an async function in the same task.