[ul] Fix API breakages from past contributions for 0.9.1#740
Conversation
4cc4e79 to
c77df69
Compare
|
Would it be possible to separate the cosmetic changes (cargo fmt) into their own commit, apart from the actual fixes? As is, it's very hard to tell where the actual changes are. |
You're right, I will work on that when I am able. |
c77df69 to
4dd9a5c
Compare
|
OK, the PR should be a bit more readable now. |
4dd9a5c to
bf4b071
Compare
bf4b071 to
d952d79
Compare
|
Well, there are more breaking changes in the code than what was originally predicted. While we can bring back most of the capabilities back, the fact that the return type of I'm starting to think that a full semver compatibility recovery is not fully possible without yanking #679, which would also be too much effort. So we either go straight for 0.10.0 or proceed with merging this and release 0.9.1 anyway, admitting the differences as minor to the library user. Still, I will need to document them carefully and analyze the potential impact. |
f9bda55 to
777a9a7
Compare
|
In case it helps, I favor 0.10.0, as there were important structural changes that needed to be addressed ASAP, and consider 0.9 as a release that serves as a transition into one that will be more stable in the long term. |
|
I have updated this PR with more constructs for compatibility. Inspecting the differences in documentation, the only major difference becomes the return type of |
6d95fa6 to
8f25dae
Compare
- Re-export CloseSocket in `association::client` module - Bring back `Release` trait as deprecated - Extend documentation of `SyncAssociation::release`
- ask to call `release` explicitly
- empty `non_blocking` modules - remove constraint `S: Read + Write + CloseSocket` from `ServerAssociation` struct - method `ServerAssociation::client_ae_title`
…ncode_pdu` They are implementation details.
…and `AsyncClientAssociation`
…tion types - Adds more compatibility to code using 0.9.0, so that it continues to work without importing the respective trait. Should be removed in 0.10.0. - Update test code accordingly (no longer needs an import)
- easily import all association traits
- add pub functions to `ClientAssociation` and `AsyncClientAssociation`: `user_variables`, `requestor_max_pdu_length`, `acceptor_max_pdu_length`, `presentation_contexts`
069893d to
fede7d7
Compare
- move `InvalidPduFieldLength` and `ReadUserVariable` to the end
An oversight had caused some unwanted changes to the
dicom_ulpublic API. This part can then be reconsidered in 0.10.Summary
CloseSocketinassociation::clientmoduleReleasetrait andreleasemethod toClientAssociationSin association typespub fnmethods replicating the methods in association traits onto association types, making it so that they continue to work without importing the respective trait.pub(crate), which are implementation details and not meant to be part of the public API.dicom_ul.