Heath Stewart
banner
heaths.dev
Heath Stewart
@heaths.dev
Principal Software Engineer working on #AzureSDK for #rustlang at #Microsoft. My opinions are my own. Love contributing to OSS in #cpp, #csharp, #javascript, #golang, et. al.

Avid outdoor adventurer 🏔️❄️👞🚴‍♂️, husband, father.
I’m pretty sure that‘s Andy Serkis as Sméagol.
November 13, 2025 at 5:29 AM
Under this US "everything was great 70 years ago" administration, we get digital IDs acceptable at many airports, but WA state - HQ to Microsoft and Amazon with large Google, Facebook, et. al. presence - still doesn't have digital DLs?
a man in a suit and tie is looking at something
Alt: Steve Carell in the US version of "The Office" looking very annoyed and impatient.
media.tenor.com
November 13, 2025 at 3:50 AM
With those changes, not only was I able to clean up the README #rustlang tests, but decided to use the recorded test framework I wrote - along with some creative overriding of rand::random to use a recorded seed - to make sure the tests not only compile, but actual work: github.com/Azure/azure-...
Reduce noise in Key Vault README code samples by heaths · Pull Request #3337 · Azure/azure-sdk-for-rust
Uses the include_file::include_markdown!() macro to include otherwise non-compilable Rust code snippets from the README.md files.
github.com
November 13, 2025 at 3:43 AM
Yep, and I’d make that a rule in our guidelines. We did the same thing for .NET eg., github.com/Azure/azure-...
November 12, 2025 at 4:19 PM
If only github.com/rust-lang/ru... was resolved, we could define test- and/or doctest-only functions and types. Alas, that is not an option now.
cfg(doctest) doesn't work as expected · Issue #67295 · rust-lang/rust
First, create empty lib crate. cargo init --lib foo With use crate::foo::bar: //! Hello //! //! ``` //! use crate::foo::bar; //! bar(); //! ``` #[cfg(doctest)] pub fn bar () { println!("hello"); } ...
github.com
November 12, 2025 at 2:38 AM
I should also point out that doctests are compiled as standalone executables so a create_your_client function would have to be define in the doctest too. Using the include_markdown macro we could still do that in the snippet but I was hoping it was obvious given the instantiation example at the top.
November 12, 2025 at 2:38 AM
With the latest push to github.com/Azure/azure-..., I turned these README tests into recorded tests (a nifty framework I wrote last spring for HTTP-based clients) so we can test that they work, backing up Rust's claim "if it compiles, it works" (often true, but network calls can always fail).
Reduce noise in Key Vault README code samples by heaths · Pull Request #3337 · Azure/azure-sdk-for-rust
Uses the include_file::include_markdown!() macro to include otherwise non-compilable Rust code snippets from the README.md files.
github.com
November 12, 2025 at 2:19 AM
*) We created the original #AzureSDK for #dotnet snippet generator because, at one point, the Key Vault README examples wouldn't even compile nonetheless work. They were based on older code, and we wanted someway to make sure they were always accurate.
November 12, 2025 at 2:19 AM
All that "setup" code we can hide in #rustlang doctests - markdown that comprises doc comments: doc.rust-lang.org/rustdoc/writ.... We can't do the same for plain markdown: those "#" prefixes will render in markdown and negatively impact readability.
November 12, 2025 at 2:19 AM
In Rust doctests, that create_your_client() still has to be defined if we want to at least compile the code snippets*. That's what the include_markdown!() macro solves. And to show async awaits, you need an async fn definition. To use the ? operator, you need a fn that returns a Result or Option.
November 12, 2025 at 2:19 AM
And yet, I've had to sit through so many of those demos in the past.
November 11, 2025 at 4:40 PM
We’d not be this far without you, @analogrelay.net, @ronnietsunami.bsky.social, et. al. to bounce ideas off of, work on various other features, etc! It’s coming together quite nicely, I think. I hope others will agree. I think we struck a good balance between perf and usability.
November 11, 2025 at 7:35 AM
See github.com/Azure/azure-... for a complete list of changes to azure_core. Some other crates like azure_security_keyvault_certificates had direct or indirect significant changes documented in the CHANGELOGs as well.
November 11, 2025 at 7:02 AM
I updated my crates.io/crates/akv-cli project with these changes, as well as simplification of `Pager` and `Poller` operations. All `Pager`s will not yield items but you can still async iterate over pages with `Pager::as_pages`. See github.com/heaths/akv-c....
Update to [email protected] by heaths · Pull Request #94 · heaths/akv-cli-rs
github.com
November 11, 2025 at 7:02 AM
We also defined `Response::<T>::body(&self) -> &ResponseBody` because a previous update buffered the entire response. `AsyncResponse` is to `Response` as `AsyncIterator` is to `Iterator`. Some methods like `BlobClient::download` return that and don't buffer. We renamed related types for consistency.
November 11, 2025 at 7:02 AM
Introduced me to Poe with “Haunted”, and after the chapter it followed that was a perfect pick!
November 11, 2025 at 5:43 AM
Whew. Working now. Camp Barry is a depressing place where it always rains, camp counselors are sharp-tongued, security is tight, and every meal consists only of beans.
November 9, 2025 at 11:44 PM
Crap. I’m at Camp Barry with this one.
November 9, 2025 at 11:21 PM
Well, yeah with those small arms.
November 8, 2025 at 10:16 PM
In over 21 years, I've only switched buildings 4 times. Not enough, IMO. We never get the cool buildings. 😢 I started out in 40/41. They weren't bad back then, but after they kicked us out they're really cool now.
November 8, 2025 at 1:38 AM
I think it all fell apart when we went from however many people your modem and desktop could handle on a BBS, to millions of people that comprise social media. Now we have entire governments run based on whatever they think will get them the most likes - mostly from bots.

ATZ
November 7, 2025 at 11:00 PM
To what I cowrote for Azure SDK for .NET 5 or 6 years ago, yeah. Ours also could hide some code and defined a preproc definition we could use to vary code in the middle of a snippet when needed. It was bespoke.

The proc-macro I just released goes the other way and doesn’t change any source.
November 7, 2025 at 3:43 PM