Skip to content

Instantly share code, notes, and snippets.

View kennykerr's full-sized avatar

Kenny Kerr kennykerr

View GitHub Profile
@kennykerr
kennykerr / winui-wishlist-gist.md
Last active September 8, 2026 23:48
WinUI wishlist for declarative UI frameworks

WinUI wishlist for declarative UI frameworks

1. Transactional and batched WinUI updates

Let a framework stage property, content, collection, removal, and reparenting operations on a XamlRoot, then commit them atomically.

  • Layout, bindings, lifecycle work, and events must see only committed state.
  • Failure or abort must leave visible UI unchanged.
  • Detached controls must be configurable before attachment.

WinUI wishlist for declarative UI frameworks

Validated against the current C# Reactor and windows-reactor implementations.

Design requirement: a coarse-grained ABI

These features should add only one begin call and one commit or abort call per root update. Normal property and collection operations should join the active update automatically, and event handlers should be able to read its origin without casting or querying the sender. Avoid token-bearing overloads or transaction calls for every property.

WinUI wishlist for windows-reactor

  • Transactional property and tree updates - biggest architectural win. Add an update session on a XamlRoot that stages property and child-tree changes, validates them, then makes them visible together. Layout and public notifications should only see the final state. Operations that cannot be staged, such as showing a dialog or initializing a WebView, can stay outside the transaction. This would prevent partial updates from leaving Reactor and WinUI out of sync and remove much of the defensive ordering and event suppression around updates.

  • Publish the XAML behavior WinUI already knows - biggest code-generation win. Include metadata

Coleman GK200 Gas vs. TrailMaster MID XRX-R

Feature Coleman GK200 Gas TrailMaster MID XRX-R Winner / Notes
Engine 196cc, ~6-9 HP (single-cylinder, air-cooled) 196-212cc, ~6.5-7 HP (OHV, air-cooled) Similar power; TrailMaster often feels more refined
Top Speed 18-23+ MPH 24-31+ MPH TrailMaster (higher potential)
Transmission Automatic chain-drive with F/N/R Torque converter automatic with F/N/R TrailMaster (smoother CVT-style)
Suspension Independent front shocks, rear mono shock Upgraded independent front + rear (full suspension) TrailMaster (better on rough farm terrain)
**Br
### Coleman GK200 Gas vs. TrailMaster MID XRX-R
| Feature | Coleman GK200 Gas | TrailMaster MID XRX-R | Winner / Notes |
|-----------------------------|--------------------------------------------|------------------------------------------------|---------------|
| **Engine** | 196cc, ~6-9 HP (single-cylinder, air-cooled) | 196-212cc, ~6.5-7 HP (OHV, air-cooled) | Similar power; TrailMaster often feels more refined |
| **Top Speed** | 18-23+ MPH | 24-31+ MPH | **TrailMaster** (higher potential) |
| **Transmission** | Automatic chain-drive with F/N/R | Torque converter automatic with F/N/R | **TrailMaster** (smoother CVT-style) |
| **Suspension** | Independent front shocks, rear mono shock | Upgraded independent front + rear (full suspension) | **TrailMaster** (better on rough farm terrain) |
| **Br
Feature,Coleman GK200 Gas,TrailMaster MID XRX-R,Winner / Notes
Engine,"196cc, ~6-9 HP (single-cylinder, air-cooled)","196-212cc, ~6.5-7 HP (OHV, air-cooled)",Similar power; TrailMaster often feels more refined
Top Speed,18-23+ MPH,24-31+ MPH,TrailMaster (higher potential)
Transmission,Automatic chain-drive with F/N/R,Torque converter automatic with F/N/R,TrailMaster (smoother CVT-style)
Suspension,"Independent front shocks, rear mono shock",Upgraded independent front + rear (full suspension),TrailMaster (better on rough farm terrain)
Brakes,Rear disc (some listings all-wheel),Hydraulic rear disc,TrailMaster (more consistent)
Dimensions (L x W x H),"~67"" x 44"" x 47""","~67"" x 43"" x 51""",Very similar size
Wheelbase,"~49-50""","~50"" (comparable)",Tie
Ground Clearance,"~3.1-3.2""","~3-4""+ (better setup)",TrailMaster
Dry Weight,~290 lbs,~330 lbs,Coleman (lighter)
@kennykerr
kennykerr / faithful-metadata-report.md
Last active July 15, 2026 22:30
Report: Faithful in-house metadata vs. win32metadata (windows-rs)

Report: Faithful in-house metadata vs. win32metadata

Recommendation: Adopt the faithful, header-derived approach (windows-rs windows-clang pipeline, PR #4649) as the metadata source of truth for the Rust projection. The evidence below supports this decisively for the windows-rs use case.

The two approaches

win32metadata (microsoft/win32metadata)

@kennykerr
kennykerr / rust-windows.md
Last active July 1, 2026 13:53
Rust on Windows wishlist

Rust on Windows wishlist

Rust-on-Windows wishlist

Everything below is grounded in a real upstream issue or a workaround currently living in the microsoft/windows-rs repo.

rustfmt

  1. cargo fmt fails on large workspaces (Windows command-line limit).
// Minimal repro: `From<PrivateType> for PublicExternalType` suppresses dead_code
//
// In windows-rs, `interface_hierarchy!(Border, IUnknown, IInspectable)` generates:
// impl From<Border> for IUnknown { ... }
// impl From<Border> for IInspectable { ... }
//
// These `From` impls make `Border` appear in a public trait implementation.
// The Rust compiler treats this as making the type "publicly reachable" — even
// though the type lives in a private module and can't actually be named by
// downstream crates. As a result, ALL `pub` methods on the type (and on types

Simplifying the windows-reactor Programming Model

A cross-language comparison of common UI patterns in React, C# (Microsoft.UI.Reactor), and Rust (windows-reactor), followed by concrete proposals to reduce boilerplate and friction in the Rust version — while remaining idiomatically Rust.


The Clone Tax

The problem in three languages