Commit Graph

206 Commits

Author SHA1 Message Date
Dirkjan Ochtman 70f3789098 Make tokio-rustls dependency optional 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 0db2c6d008 Abstract EppClient over stream type 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 44f3fbef53 Move responsibility for stream setup into client 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman d69439ff24 Abstract EppConnection over stream type 2022-01-03 10:22:20 +08:00
Dirkjan Ochtman 3d0c3166f3 More concise/consistent error messages 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 978e43a4c1 Consistently return Error type 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman abab1aca8c Store richer Box<dyn StdError> in Error::Other 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 6d063804d3 Use consistent naming for error types 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 467ac03df7 Preserve quick-xml errors 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 78628cfc02 Rename Error variants to avoid stuttering 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman 2193c10290 Remove unused impl 2021-12-27 15:29:09 +08:00
Dirkjan Ochtman b7b6d0ae00 Remove unused type 2021-12-27 15:29:09 +08:00
Ritesh Chitlangi d5d3a93141 fix impl lifetimes 2021-12-21 00:14:38 +08:00
Ritesh Chitlangi 537fe10bee minor fixes 2021-12-21 00:05:12 +08:00
Nick Rempel 6445b63c62 Add sync namestore composite extension 2021-12-20 22:19:57 +08:00
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