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.
Even though there is a bug that caues {} to be used in stead of
(),
when exanding macros, which causes syntax errors that we have to
workaround, it's not a real issue.
What's happening additionally is missing hyper macros, which
now have to be expanded manually. Shouldn't be a problem,
pretty-printing when compiling is made for just that ;).
No, it's sad that `include!()` works so badly, it makes
using serde so difficult ... it's no fun i must say.
Just for stable ... I am not sure if it is worth it."
There are no per-program-type docs clean, just made it depend on
docs-all-clean.
Also added the `docs-api|cli` target to the generated per-program-type
make help. It was just missing, even though it existed.
clean-all-docs and clean-all-cli aren't valid targets. The current mako
template causes `make clean` to abend reporting that it can't make these
targets.
Previously we would remove the wrong parameters when attempting to
remove only those parameters that have been used in the URL
substitution.
The code we have now is more idiomatic and appears to be removing the
correct parameters.
Closes#114
[skip ci]
We save about 30% of CLI code just because we offload the work of
settings structures into serde, building a generic `json::Value` to
contain all the data, and then let serde do the deserialization for us.
All we need for that is some information we let the generator provide
and translate it into the runtime.
Closes#111
However, we don't set the correct field names yet, and are lacking
a remapping of CLI field names to struct field names before any
testing makes sense.
* recurively drill down a mutable, recursive enumeration, without borrow
checker issues. The obvious solution doesn't work, but should.
Stackoverflow ?
* infrastructure to set actual value, with support for ararys, pods and
hashmaps
Previously we only knew the type as string, now we have enums and
additional type information, like whether or not it's a POD.
However, borrow-checker doesn't like the current code, will need more
work.
Previously we would set static structures manully, using complex cases
and utility functions. Now we setup the foundation to allow setting
a generic `json::value::Value` instead, which can later be deserialized
into the target structure.
Related to #111
* Vec::add was removed ... which forces me to write 4 lines instead of
one very readable one :(.
Not everything is to the better here, even though I can imagine they
did it to prevent people from thinking this is a cheap operation.
[skip ci]