Use SystemTime
to implement DateTime
and provide interop
#817
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.
std::time::SystemTime
is implemented as arepr(transparent)
wrapperaround
FILETIME
on Windows[1], so we can in turn wrapstd::time::SystemTime
inWindows::Foundation::DateTime
and provideinterop therebetween.
Note that [1] is actually
std
's implementation detail, so in principlewe have to constantly monitor
std
's changes toSystemTime
.Hopefully such changes will never happen. Also there are no other reasonable
ways to do it because
std::time::SystemTime
has a completely opaqueAPI.
It's difficult for me to provide a proper unit test right now because a
test like
tests/winrt/tests/time_span.rs
depends on methods onTestComponent.TestRunner
.