pub struct Member {
pub ordinal: Ordinal,
pub kind: Kind,
pub name: &'static str,
pub timing: Option<Timing>,
pub payloads: &'static [PayloadInfo],
}Expand description
One member of an interface.
Fields§
§ordinal: OrdinalThe member’s ordinal.
kind: KindThe member’s kind.
name: &'static strThe member’s name.
timing: Option<Timing>The member’s timing, as the IR resolved it. None when the IR carries
no timing: a fixed, or a command or query in a catalog built
before commands and queries took a default response bound.
payloads: &'static [PayloadInfo]One entry per payload: two for a query (the request, then the
reply), one for every other kind.
Implementations§
Source§impl Member
impl Member
Sourcepub fn call_deadline(&self) -> Option<Duration>
pub fn call_deadline(&self) -> Option<Duration>
The call deadline: the max of the member’s timing, which on a
command or a query is the response bound (ridl §9.3).
A command or a query in a catalog built by this version always has
a max: an untimed member takes the package’s default response bound
(ridl §9.1). None remains for a catalog built before that default
existed, where such a member has no timing or a timing without max.
This function takes no position on what a caller does with None.
The function reads max whatever the member’s kind. On a signal
max is the staleness bound and on an event the time to live
(ridl §9), neither of which is a call deadline, so call it on a
command or a query.
Sourcepub fn reservation<E: Encoding>(&self) -> Result<u64, Unsized>
pub fn reservation<E: Encoding>(&self) -> Result<u64, Unsized>
The bytes one in-flight instance of this member reserves in encoding
E: the sum of PayloadInfo::max_size for E over its payloads —
one payload for most kinds, two for a query, the request and then the
reply.
No specification defines this budget. It is derived from the descriptors alone, so that every runtime sizing a table of calls in flight computes the same number.
§Errors
Unsized, naming this member and the first payload whose size for
E is None. A missing size is reported, never replaced by an
estimate.