Redesign crate to use inherent impls over traits #35
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added
HasPrevious
trait to recursively determine version compatibility at compile-time.Changed
Deref
andDerefMut
for handling backwards compatibility.Version
toVersionCode
,ApiVersion
trait toVersion
.Entry
type, since the aliases point to the same struct.CaptureOptions
,InputButton
,OverlayBits
tosettings.rs
.DeviceHandle
andWindowHandle
tohandles.rs
.Removed
prelude
module.api
module.RenderDocV###
trait boilerplate code fromrenderdoc-derive
.This should improve the user experience for this crate by eliminating the obnoxious trait-heavy abstraction and relying on inherent implementations instead. The code is kept maintainable by using
Deref
andDerefMut
to overlay semver-compatible API versions together, and with theHasPrevious
trait to determine what methods may be called for which version entirely at compile-time.