New week, new Rust! What are you folks up to?
Well, I‘m still a newbie to rust and investigating how the whole async/.await is working under the hood. I already started to apply the framework and the concepts to a bare metal no-std crate for my RaspberryPi.
At least I’m able to spawn
Thoughts (which is my “robot”-style version of a ’Future’) and get them processed across the 4 cores of the Pi with my
Brain which is the home of the
Executor. I‘m not having threads as each core is running concurrently but singlethreaded.... which is quite enough for my current purposes
What gives me a hard time actually is that the spawner can only manage to build up a queue of
Thoughts with the
() Return type, which is the same for the
Spawner in the stabilized Rust Standard for
async/.await as far as I‘m aware. So thinking on
Thoughts with an actual return type, e.g. an
u32 could not be done with my
Brain implementation, so need to figure out what the
.await sugar does under the hood to schedule the
Future for asynchronous processing and yet being able to return the actual typed value of it....
However, I’m curious to learn all the mechanics this way
I wrote my first proc macro and used it in my simple logging_timer crate.
But mainly I have been trying to do a proof-of-concept of porting some C# code to Rust. The C# calls out by PInvoke to a 32 bit Windows dll....it's almoooooooost working. Got it building and running using a 32bit Rust toolchain (it finds the DLL, yay!) but it crashes when run, with an ACCESS_VIOLATION. Probably a mismatched pointer or something.
I've been working on the 0.3 version of structural for a month(not as actively as with 0.2),working towards structural enums and optional accessor support.
Right now I'm trying to improve support for dynamic dispatch for structural enums,and if I got my design correct it'll be possible to do everything with trait objects of structural enums that is possible with static dispatch.