Null structs (struct Foo;) cause the following error when trying to
deserialize an empty JSON object `{}` into them:
`JsonDecodeError("{}\n", Syntax(InvalidType(Map), 1, 1))` (also known as
`invalid type: map at line 1 column 1: {}`). The optional struct member
prevents this error.
The interactive flow requires to paste a code back into the
command-line, which does only work when it's cat'ed, but not
if it is pasted.
This should let it handle everything internally, which is
way more user-friendly.
This update fixes the build on stable, and allows builds
on nightly as usual.
The trick is to use the latest version of serde-codegen,
which keeps the syntex version internal, preventing clashes
between libraries that might have different requirements.
Nightly is now supported, in theory, to allow not to use serde_codegen,
which currently has trouble to build thanks to an assertion error.
Nightly on the other hand suffers from being build with incorrect
feature-flags, which makes quasi_macros fail to build ... .
It seems all these serde versions interact with each other
in unforseen ways, so they will have to be in sync for it
to work. Its a shaky card-house I am building here,
and I don't like it at all.
Considering we kind-of hardcoded this authentication type anyway,
we now use the Auth-types provided by hyper 0.8.
The incentive here was the compiler telling us that there the
yup-oauth::Scheme type doesn't implement the hyper::authorization::Scheme
anymore, even though that clearly was the case. Also it couldn't be
reproduced in yup-oauth itself.
This will need some work to get correct again, so this is just a crude
patch to make it work again.
Previously the yaml version generation could fail if your system-python
didn't have yaml installed. Now the virtual env is used, which is
guaranteed to support yaml.
However, in sibling libraries, we still use time::Duration, which
now is a part of std::time::Duration.
These should be adjusted, to make the usage of
sleep(Duration::from_millis(d.num_milliseconds() as u64)) into sleep(d)
Also version specifications in dependencies were chosen to provide
maximum flexibility for users of the libraries.
CLIs on the other hand specify last known-to-work major and minor versions
to prevent breakage
* `SubCommand::new(...)` was renamed to `SubCommand::with_name(...)`
which actually is now consistent with everything else
(e.g. `Arg::with_name(...)`)
For some reason, this is now a requirement - previously this didn't
seem to be necessary.
Don't know what changed there ... and it's odd it doesn't flush
when the process is going down or the handle is destroyed.
Previously this wasn't the case, as the type could be inferred by the
type of the parent-vector to extend.
Apparently this feature was removed, probably for good reason.
Thanks to the latest cargo 0.3.0, it's possible to keep everything
in the stanard doc output directory, which essentially collects
everything for us.
This creatly reduces the space required to hold all documentation, and
is in fact quite beatiful.
CLI was slightly adjusted to not use unstable features.
Fortunately, there is no serde magic happening, which allows
us to keep it simple without using a build script.