Struct erl_dist::DistributionFlags
source · [−]pub struct DistributionFlags { /* private fields */ }
Expand description
Distribution flags.
Implementations
sourceimpl DistributionFlags
impl DistributionFlags
sourcepub const ATOM_CACHE: Self
pub const ATOM_CACHE: Self
The node implements an atom cache (obsolete).
sourcepub const EXTENDED_REFERENCES: Self
pub const EXTENDED_REFERENCES: Self
The node implements extended (3 × 32 bits) references (required).
[NOTE] This flag is mandatory. If not present, the connection is refused.
sourcepub const DIST_MONITOR: Self
pub const DIST_MONITOR: Self
The node implements distributed process monitoring.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const FUN_TAGS: Self
pub const FUN_TAGS: Self
The node uses separate tag for funs (lambdas) in the distribution protocol.
sourcepub const DIST_MONITOR_NAME: Self
pub const DIST_MONITOR_NAME: Self
The node implements distributed named process monitoring.
sourcepub const HIDDEN_ATOM_CACHE: Self
pub const HIDDEN_ATOM_CACHE: Self
The (hidden) node implements atom cache (obsolete).
sourcepub const NEW_FUN_TAGS: Self
pub const NEW_FUN_TAGS: Self
The node understands new fun tags.
[NOTE] This flag is mandatory. If not present, the connection is refused.
sourcepub const EXTENDED_PIDS_PORTS: Self
pub const EXTENDED_PIDS_PORTS: Self
The node can handle extended pids and ports (required).
[NOTE] This flag is mandatory. If not present, the connection is refused.
sourcepub const EXPORT_PTR_TAG: Self
pub const EXPORT_PTR_TAG: Self
This node understands EXPORT_EXT
tag.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const BIT_BINARIES: Self
pub const BIT_BINARIES: Self
The node understands bit binaries.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const NEW_FLOATS: Self
pub const NEW_FLOATS: Self
The node understandss new float format.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const UNICODE_IO: Self
pub const UNICODE_IO: Self
This node allows unicode characters in I/O operations.
sourcepub const DIST_HDR_ATOM_CACHE: Self
pub const DIST_HDR_ATOM_CACHE: Self
The node implements atom cache in distribution header.
Note that currently erl_dist
can not handle distribution headers.
sourcepub const SMALL_ATOM_TAGS: Self
pub const SMALL_ATOM_TAGS: Self
The node understands the SMALL_ATOM_EXT
tag.
sourcepub const UTF8_ATOMS: Self
pub const UTF8_ATOMS: Self
The node understands UTF-8 encoded atoms.
[NOTE] This flag is mandatory. If not present, the connection is refused.
sourcepub const MAP_TAGS: Self
pub const MAP_TAGS: Self
The node understands maps.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const BIG_CREATION: Self
pub const BIG_CREATION: Self
The node understands big node creation tags NEW_PID_EXT
, NEW_PORT_EXT
and NEWER_REFERENCE_EXT
.
[NOTE] This flag is mandatory. If not present, the connection is refused.
sourcepub const SEND_SENDER: Self
pub const SEND_SENDER: Self
Use the SEND_SENDER
control message instead of the SEND
control message and use the SEND_SENDER_TT
control message instead of the SEND_TT
control message.
sourcepub const BIG_SEQTRACE_LABELS: Self
pub const BIG_SEQTRACE_LABELS: Self
The node understands any term as the seqtrace label.
sourcepub const EXIT_PAYLOAD: Self
pub const EXIT_PAYLOAD: Self
Use the PAYLOAD_EXIT
, PAYLOAD_EXIT_TT
, PAYLOAD_EXIT2
, PAYLOAD_EXIT2_TT
and PAYLOAD_MONITOR_P_EXIT
control messages instead of the non-PAYLOAD variants.
sourcepub const HANDSHAKE_23: Self
pub const HANDSHAKE_23: Self
The node supports the new connection setup handshake (version 6) introduced in OTP 23.
sourcepub const UNLINK_ID: Self
pub const UNLINK_ID: Self
Use the new link protocol.
Unless both nodes have set the UNLINK_ID
flag, the old link protocol will be used as a fallback.
[NOTE] This flag will become mandatory in OTP 25.
sourcepub const SPAWN: Self
pub const SPAWN: Self
Set if the SPAWN_REQUEST
, SPAWN_REQUEST_TT
, SPAWN_REPLY
, SPAWN_REPLY_TT
control messages are supported.
sourcepub const NAME_ME: Self
pub const NAME_ME: Self
Dynamic node name.
This is not a capability but rather used as a request from the connecting node to receive its node name from the accepting node as part of the handshake.
sourcepub const V4_NC: Self
pub const V4_NC: Self
The node accepts a larger amount of data in pids, ports and references (node container types version 4).
In the pid case full 32-bit ID
and Serial
fields in NEW_PID_EXT
,
in the port case a 64-bit integer in V4_PORT_EXT
, and in the reference case up to 5 32-bit ID words are
now accepted in NEWER_REFERENCE_EXT
.
Introduced in OTP 24.
[NOTE] This flag will become mandatory in OTP 26.
sourcepub const ALIAS: Self
pub const ALIAS: Self
The node supports process alias and can by this handle the ALIAS_SEND
and ALIAS_SEND_TT
control messages.
Introduced in OTP 24.
sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const unsafe fn from_bits_unchecked(bits: u64) -> Self
pub const unsafe fn from_bits_unchecked(bits: u64) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Safety
The caller of the bitflags!
macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked()
has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true
if there are flags common to both self
and other
.
sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Returns true
if all of the flags in other
are contained within self
.
sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self
and
other
.
Specifically, the returned set contains only the flags which are
present in both self
and other
.
This is equivalent to using the &
operator (e.g.
ops::BitAnd
), as in flags & other
.
sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self
and other
.
Specifically, the returned set contains all flags which are
present in either self
or other
, including any which are
present in both (see Self::symmetric_difference
if that
is undesirable).
This is equivalent to using the |
operator (e.g.
ops::BitOr
), as in flags | other
.
sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self
and other
.
Specifically, the returned set contains all flags present in
self
, except for the ones present in other
.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other
(and this syntax is also supported).
This is equivalent to using the -
operator (e.g.
ops::Sub
), as in flags - other
.
sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self
and other
.
Specifically, the returned set contains the flags present which
are present in self
or other
, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self
and other
.
This is equivalent to using the ^
operator (e.g.
ops::BitXor
), as in flags ^ other
.
sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self
, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all()
and self
(e.g. Self::all() - self
)
This is equivalent to using the !
operator (e.g.
ops::Not
), as in !flags
.
sourceimpl DistributionFlags
impl DistributionFlags
sourcepub fn new() -> Self
pub fn new() -> Self
Makes a new DistributionFlags
with the default flags.
This is equivalent to the following code:
DistributionFlags::mandatory() | DistributionFlags::HANDSHAKE_23;
Trait Implementations
sourceimpl Binary for DistributionFlags
impl Binary for DistributionFlags
sourceimpl BitAnd<DistributionFlags> for DistributionFlags
impl BitAnd<DistributionFlags> for DistributionFlags
sourceimpl BitAndAssign<DistributionFlags> for DistributionFlags
impl BitAndAssign<DistributionFlags> for DistributionFlags
sourcefn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
sourceimpl BitOr<DistributionFlags> for DistributionFlags
impl BitOr<DistributionFlags> for DistributionFlags
sourcefn bitor(self, other: DistributionFlags) -> Self
fn bitor(self, other: DistributionFlags) -> Self
Returns the union of the two sets of flags.
type Output = Self
type Output = Self
The resulting type after applying the |
operator.
sourceimpl BitOrAssign<DistributionFlags> for DistributionFlags
impl BitOrAssign<DistributionFlags> for DistributionFlags
sourcefn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
sourceimpl BitXor<DistributionFlags> for DistributionFlags
impl BitXor<DistributionFlags> for DistributionFlags
sourceimpl BitXorAssign<DistributionFlags> for DistributionFlags
impl BitXorAssign<DistributionFlags> for DistributionFlags
sourcefn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
sourceimpl Clone for DistributionFlags
impl Clone for DistributionFlags
sourcefn clone(&self) -> DistributionFlags
fn clone(&self) -> DistributionFlags
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for DistributionFlags
impl Debug for DistributionFlags
sourceimpl Default for DistributionFlags
impl Default for DistributionFlags
sourceimpl Extend<DistributionFlags> for DistributionFlags
impl Extend<DistributionFlags> for DistributionFlags
sourcefn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
Extends a collection with the contents of an iterator. Read more
sourcefn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)Extends a collection with exactly one element.
sourcefn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
sourceimpl FromIterator<DistributionFlags> for DistributionFlags
impl FromIterator<DistributionFlags> for DistributionFlags
sourcefn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
Creates a value from an iterator. Read more
sourceimpl Hash for DistributionFlags
impl Hash for DistributionFlags
sourceimpl LowerHex for DistributionFlags
impl LowerHex for DistributionFlags
sourceimpl Not for DistributionFlags
impl Not for DistributionFlags
sourceimpl Octal for DistributionFlags
impl Octal for DistributionFlags
sourceimpl Ord for DistributionFlags
impl Ord for DistributionFlags
sourceimpl PartialEq<DistributionFlags> for DistributionFlags
impl PartialEq<DistributionFlags> for DistributionFlags
sourcefn eq(&self, other: &DistributionFlags) -> bool
fn eq(&self, other: &DistributionFlags) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &DistributionFlags) -> bool
fn ne(&self, other: &DistributionFlags) -> bool
This method tests for !=
.
sourceimpl PartialOrd<DistributionFlags> for DistributionFlags
impl PartialOrd<DistributionFlags> for DistributionFlags
sourcefn partial_cmp(&self, other: &DistributionFlags) -> Option<Ordering>
fn partial_cmp(&self, other: &DistributionFlags) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Sub<DistributionFlags> for DistributionFlags
impl Sub<DistributionFlags> for DistributionFlags
sourceimpl SubAssign<DistributionFlags> for DistributionFlags
impl SubAssign<DistributionFlags> for DistributionFlags
sourcefn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.
sourceimpl UpperHex for DistributionFlags
impl UpperHex for DistributionFlags
impl Copy for DistributionFlags
impl Eq for DistributionFlags
impl StructuralEq for DistributionFlags
impl StructuralPartialEq for DistributionFlags
Auto Trait Implementations
impl RefUnwindSafe for DistributionFlags
impl Send for DistributionFlags
impl Sync for DistributionFlags
impl Unpin for DistributionFlags
impl UnwindSafe for DistributionFlags
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more