Commit Graph

341 Commits

Author SHA1 Message Date
Dirkjan Ochtman 17d5bd90e9 Use &str or Cow<'a, str> in place of String 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 99701608a2 Replace Vec with slice where possible 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman d4f4949cd8 Store a Cow<'a, str> in StringValue
And parametrize all serialize-only types with a lifetime such that
building requests no longer requires unnecessary allocations.
2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 1efe19000e Deduplicate DomainTransfer constructor methods 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman a5f57fa836 Use &'static str for namespace URLs in serialize types 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman b0595511e4 Remove unnecessary Deserialize/Serialize derives 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 5664276133 Remove serde aliases from types that don't implement Deserialize 2021-12-20 22:08:55 +08:00
Dirkjan Ochtman 3935413b70 Move contact-related types from common to contact 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 93f8e0e8c8 Remove type aliases for ContactStatus 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 95e21eb9ea Reinstate contact module as a separate file 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman defd7cff9b Move domain-related types from common to domain 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman 2ac3a6398d Remove unused type 2021-12-15 23:40:56 +08:00
Dirkjan Ochtman ae0a6589a9 Reinstate domain module as a separate file 2021-12-15 23:40:56 +08:00
Nick Rempel b8e47fce4b exDate should always be optional 2021-12-14 23:20:19 +08:00
Dirkjan Ochtman 62645eec96 Minimize configuration interface API 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 375a151851 Use PathBuf type to clarify usage of paths 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 79c69dfd1f Privatize EppConnection type 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 7772b302af Add shutdown() method in EppClient interface 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 0ac766e848 Rename registry module to connection 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 4f111fa8fe Make connection setup a part of EppConnection interface 2021-12-14 23:12:28 +08:00
Dirkjan Ochtman 6695a20a18 Remove now unnecessary workspace 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 6478cff2e0 Drop ElementName trait and macros crate 2021-12-13 00:19:03 +08:00
Nicholas Rempel 99f90f3c08 Complete Transaction impl coverage for NameStore extension 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 8490eefc59 Distribute serialization tests over command modules 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman cf44a81991 Distribute deserialization tests over command modules 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman d34c94ee9f Make Transaction trait more flexible
Instead of separate types implementing the `Transaction` trait,
here we implement `Transaction` for a command type.

The definition of the `Transaction` trait ensures that:

* Implementations for commands with a particular extension
  must be explicitly defined (that is, you can't just call
  `transact()` with a random combination of a command type
  and an extension type).
* The combination of the command type and the extension type
  (via the `Transaction` impl) defines the response type
  (both the command response and the extension response).

This definition means that:

* `Transaction` implementations for commands defined within
  the epp-client crate that want to use an extension defined
  within the crate must have an impl local to the crate.
* `Transaction` impls defined for commands foreign to the
  epp-client crate as well as impls defined with extensions
  foreign to the crate can have an impl in their defining crate.
2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 38d4391e43 Remove overly duplicative doctests 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 50c21a7037 Rename EppRequest to Transaction 2021-12-13 00:19:03 +08:00
Dirkjan Ochtman 7039fdb7d6 Move rgp module back into extensions/rgp.rs 2021-12-09 17:05:06 +08:00
Dirkjan Ochtman ce30f1599f Use different type wrappers instead of single EppObject 2021-12-09 17:05:06 +08:00
Dirkjan Ochtman 57d60807d8 Switch from log to tracing 2021-12-09 16:15:34 +08:00
Dirkjan Ochtman 34ee9de0ec Use explicit imports for log macros 2021-12-09 16:15:34 +08:00
Dirkjan Ochtman 9c694a450a Remove unused dependency env_logger 2021-12-09 16:15:34 +08:00
Dirkjan Ochtman b5b17e5b3f Inline rgp module 2021-12-08 16:04:56 +08:00
Nicholas Rempel 6d1c749b67 Use full definitions for all transfer response models 2021-12-08 15:28:19 +08:00
Nicholas Rempel a4d6cf1c57 Make transfer exDate optional 2021-12-04 03:14:53 +08:00
Nicholas Rempel fe47e27c99 Allow transfer request without period 2021-12-04 03:13:43 +08:00
Nicholas Rempel 26579600d0 rgp:infData should allow multiple rgp:rgpStatus 2021-12-04 03:05:18 +08:00
Nicholas Rempel 5261a733be Update DomainInfo mapping to reflect RFC 2021-12-04 02:58:51 +08:00
Ritesh Chitlangi 9b6522b8b2 fix doctest in consolidate.rs 2021-12-04 02:38:09 +08:00
Nicholas Rempel a620fc6598 Add tests for consolidate extension 2021-12-04 02:16:38 +08:00
Nicholas Rempel 9e0627dcc5 Add consolidate extension model 2021-12-04 02:16:38 +08:00
Nicholas Rempel cf446f58c7 Update Login::new to take ownership of Option ext_uris 2021-12-04 02:13:09 +08:00
Nicholas Rempel 0b42579484 Remove credentials from Client and Connection and remove login, logout, and generate_client_tr_id 2021-12-04 02:13:09 +08:00
Nicholas Rempel c9135754e5 Fix poll model 2021-12-03 12:26:18 +08:00
Dirkjan Ochtman edb2a2627d Remove Hello and Greeting type aliases 2021-12-03 12:11:22 +08:00
Dirkjan Ochtman 140f6830a9 Rename CommandWithExtension to Command 2021-12-03 12:11:22 +08:00
Dirkjan Ochtman 8f43800a3d Remove unused Command type 2021-12-03 12:11:22 +08:00
Dirkjan Ochtman 34828032ac Remove unnecessary type alias 2021-12-03 12:11:22 +08:00
Dirkjan Ochtman 37feb5c2c4 Remove EppObject wrapper where unnecessary
This was being used in a few places where it was unnecessary.
Interestingly, it seemed that the deserialization logic in
`Request::deserialize_response()` was nesting `EppObject`s without
actually causing an error.
2021-12-03 12:11:22 +08:00