pub struct RouteHop {
    pub pubkey: PublicKey,
    pub node_features: NodeFeatures,
    pub short_channel_id: u64,
    pub channel_features: ChannelFeatures,
    pub fee_msat: u64,
    pub cltv_expiry_delta: u32,
    pub maybe_announced_channel: bool,
}
Expand description

A hop in a route, and additional metadata about it. “Hop” is defined as a node and the channel that leads to it.

Fields§

§pubkey: PublicKey

The node_id of the node at this hop.

§node_features: NodeFeatures

The node_announcement features of the node at this hop. For the last hop, these may be amended to match the features present in the invoice this node generated.

§short_channel_id: u64

The channel that should be used from the previous hop to reach this node.

§channel_features: ChannelFeatures

The channel_announcement features of the channel that should be used from the previous hop to reach this node.

§fee_msat: u64

The fee taken on this hop (for paying for the use of the next channel in the path). If this is the last hop in Path::hops:

  • if we’re sending to a BlindedPath, this is the fee paid for use of the entire blinded path
  • otherwise, this is the full value of this Path’s part of the payment
§cltv_expiry_delta: u32

The CLTV delta added for this hop. If this is the last hop in Path::hops:

  • if we’re sending to a BlindedPath, this is the CLTV delta for the entire blinded path
  • otherwise, this is the CLTV delta expected at the destination
§maybe_announced_channel: bool

Indicates whether this hop is possibly announced in the public network graph.

Will be true if there is a possibility that the channel is publicly known, i.e., if we either know for sure it’s announced in the public graph, or if any public channels exist for which the given short_channel_id could be an alias for. Will be false if we believe the channel to be unannounced.

Will be true for objects serialized with LDK version 0.0.116 and before.

Trait Implementations§

source§

impl Clone for RouteHop

source§

fn clone(&self) -> RouteHop

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RouteHop

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for RouteHop

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for RouteHop

source§

fn eq(&self, other: &RouteHop) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Readable for RouteHop

source§

fn read<R: Read>(reader: &mut R) -> Result<Self, DecodeError>

Reads a Self in from the given Read.
source§

impl Writeable for RouteHop

source§

fn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>

Writes self out to the given Writer.
source§

fn serialized_length(&self) -> usize

Gets the length of this object after it has been serialized. This can be overridden to optimize cases where we prepend an object with its length.
source§

fn encode(&self) -> Vec<u8>

Writes self out to a Vec<u8>.
source§

impl Eq for RouteHop

source§

impl StructuralPartialEq for RouteHop

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> MaybeReadable for T
where T: Readable,

source§

fn read<R>(reader: &mut R) -> Result<Option<T>, DecodeError>
where R: Read,

Reads a Self in from the given Read.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.