-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Lazy interface #3
Conversation
I've also added |
I'm a bit limited on time and the heavy use of macros is making it more difficult to see what you are intending with the API. Honestly, I wonder if a |
No bother. Actually, representing this as a DSL and transforming using a build step doesn't sound that bad. The current implementation looks roughly like this:
Except with actual panic messages. |
I assume the A very rough idea of where I lean on an API is:
This would allow lazy loading, loading into custom structs, and a default struct implementation that contains everything for the person who needs it. There might need to be some ergonomic improvements for that case, like a |
You're correct, fixed the missing Another proposal: create a
And then the CI structs would have an abundance of those? Pending making a version for expected versions as well as the maybe-absent. |
But I'll spend some time investigating building on top of |
I'm closing this as 1) it's super stale and 2) the current interface is probably better short-term at least. |
As it turns out, the macro interface is probably possible using just macro-by-example, even if it has a few shortcomings (read: the
#[ci]
has to come before the doc comments).I still need to convert the other added providers (or at least AppVeyor and Travis) to the new format, but everything should transfer over, though I'll probably have to flatten Jenkins' GHPRB.
Does this shape meet your use case, @epage ? We can add a trait on top and provide a
ci_info() -> dyn CommonCIInfo
for portable information.