-
Notifications
You must be signed in to change notification settings - Fork 63
interledger-packet API review for v1.0-rc #561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Paging @emschwartz , @gakonst , @dora-gt to see if anyone has any thoughts about this. (Reminder that this is also a trial of the process we might use to stabilize the other crates as well, let me know if you have any feedback on the process itself.) |
Regarding OER: https://interledger.org/rfcs/0030-notes-on-oer-encoding/ |
For a while I thought we might want to either make this private or move it to a completely separate crate. However, it might make sense to just keep it the way it is. OER is an encoding format that could be implemented on its own in a separate crate (ideally as a full
I think this is just duplication. Originally, the two implementations of OER were the same but the one in
No opinion
No. This should stay the way it is.
I think keeping the builder is better, precisely because it has more fields and it seems cleaner when constructing it to have the fields named.
We may want to change this to remove the dependency on
No opinion
|
|
|
As per #557, it's time to start thinking about stable releases of the crates in this repo. As a demonstration of the sort of process that might entail, this issue exists to discuss the public API of interledger-packet (i.e. the only one of our crates that doesn't depend on any of our others, thus the natural starting point for stabilization).
Below we will list every public item exported by interledger-packet, including items marked as
#[doc(hidden)]
, because just because something is hidden from the docs doesn't mean it wouldn't be stabilized by a 1.0 release (whether or not these items ought to remain hidden by the docs is worth discussion as well).Beneath each item I will list any open questions that come to mind regarding that item. Please feel free to edit this text to add in your own questions. Resolved questions should have their checkbox checked. Items with no unresolved questions should have their checkbox checked.
For now let's not bother noting which items need documentation; it should be taken as given that all public items will need to be at least cursorily documented before being stabilized.
For brevity I won't be including full function signatures in this list, although obviously this is also important to keep in mind when considering stabilizing an item. Please review the signatures of all items yourself (which can be done easily via
cd interledger-packet; cargo doc --open
). Nor will the full bevy of trait implementations/implementors be considered.oer
(module)oer::BufOerExt
(trait)BufOerExt
trait? Does that imply some deficiency of this one that could be addressed?&[u8]
whenMutBufOerExt
is instead implemented forB: BufMut
? Should this be implemented forB: Buf
?oer::BufOerExt::peek_var_octet_string
(fn)oer::BufOerExt::read_var_octet_string
(fn)oer::BufOerExt::skip
(fn)oer::BufOerExt::skip_var_octet_string
(fn)oer::BufOerExt::read_var_octet_string_length
(fn)oer::BufOerExt::read_var_unit
(fn)oer::MutBufOerExt
(trait)oer::MutBufOerExt::put_var_octet_string
(fn)oer::MutBufOerExt::put_var_octet_string_length
(fn)oer::extract_var_octet_string
(fn)MutBufOerExt
?oer::predict_var_octet_string
(fn)Address
(struct)Address::len
(fn)Address::to_bytes
(fn)Address::new_unchecked
(fn)Address::segments
(fn)Address::scheme
(fn)Address::with_suffix
(fn)ErrorCode
(struct)ErrorCode::new
(fn)ErrorCode::class
(fn)Fulfill
(struct)Fulfill::fulfillment
(fn)Fulfill::data
(fn)Fulfill::into_data
(fn)impl From<Fulfill> for BytesMut
?FulfillBuilder
(struct)build
? Could it be eliminated by simply movingFulfillBuilder::build
toFulfill::new
?MaxPacketAmountDetails
(struct)MaxPacketAmountDetails::new
(fn)MaxPacketAmountDetails::from_bytes
(fn)impl TryFrom<&[u8]> for MaxPacketAmountDetails
?MaxPacketAmountDetails::to_bytes
(fn)impl From<MaxPacketAmountDetails> for [u8; 16]
?MaxPacketAmountDetails::amount_received
(fn)MaxPacketAmountDetails::max_amount
(fn)Prepare
(struct)Prepare::amount
(fn)Prepare::set_amount
(fn)Prepare::expires_at
(fn)Prepare::set_expires_at
(fn)Prepare::execution_condition
(fn)Prepare::destination
(fn)Prepare::data
(fn)Prepare::into_data
(fn)impl From<Prepare> for BytesMut
?PrepareBuilder
(struct)FulfillBuilder
, replace in favor of anew
function? Potential downside: unlikeFulfillBuilder
this struct has more than two fields, and anew
constructor doesn't allow named fields as a struct constructor does.Reject
(struct)Reject::code
(fn)Reject::triggered_by
(fn)Reject::message
(fn)Reject::data
(fn)Reject::into_data
(fn)impl From<Reject> for BytesMut
?RejectBuilder
(struct)PrepareBuilder
?AddressError
(enum)ParseError
?ErrorClass
(enum)Packet
(enum)PacketType
?PacketType
(enum)Packet
?ParseError
(enum)The text was updated successfully, but these errors were encountered: