Struct erl_dist::DistributionFlags
source · pub struct DistributionFlags { /* private fields */ }
Expand description
Distribution flags.
Implementations§
source§impl 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 MANDATORY_25_DIGEST: Self = _
pub const MANDATORY_25_DIGEST: Self = _
The node supports all capabilities that are mandatory in OTP 25.
Introduced in OTP 25. [NOTE] This flag will become mandatory in OTP 27.
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
.
source§impl 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();
Trait Implementations§
source§impl Binary for DistributionFlags
impl Binary for DistributionFlags
source§impl BitAnd<DistributionFlags> for DistributionFlags
impl BitAnd<DistributionFlags> for DistributionFlags
source§impl BitAndAssign<DistributionFlags> for DistributionFlags
impl BitAndAssign<DistributionFlags> for DistributionFlags
source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
source§impl BitOr<DistributionFlags> for DistributionFlags
impl BitOr<DistributionFlags> for DistributionFlags
source§fn bitor(self, other: DistributionFlags) -> Self
fn bitor(self, other: DistributionFlags) -> Self
Returns the union of the two sets of flags.
§type Output = DistributionFlags
type Output = DistributionFlags
|
operator.source§impl BitOrAssign<DistributionFlags> for DistributionFlags
impl BitOrAssign<DistributionFlags> for DistributionFlags
source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
source§impl BitXor<DistributionFlags> for DistributionFlags
impl BitXor<DistributionFlags> for DistributionFlags
source§impl BitXorAssign<DistributionFlags> for DistributionFlags
impl BitXorAssign<DistributionFlags> for DistributionFlags
source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
source§impl Clone for DistributionFlags
impl Clone for DistributionFlags
source§fn clone(&self) -> DistributionFlags
fn clone(&self) -> DistributionFlags
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for DistributionFlags
impl Debug for DistributionFlags
source§impl Default for DistributionFlags
impl Default for DistributionFlags
source§impl Extend<DistributionFlags> for DistributionFlags
impl Extend<DistributionFlags> for DistributionFlags
source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl FromIterator<DistributionFlags> for DistributionFlags
impl FromIterator<DistributionFlags> for DistributionFlags
source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
source§impl Hash for DistributionFlags
impl Hash for DistributionFlags
source§impl LowerHex for DistributionFlags
impl LowerHex for DistributionFlags
source§impl Not for DistributionFlags
impl Not for DistributionFlags
source§impl Octal for DistributionFlags
impl Octal for DistributionFlags
source§impl Ord for DistributionFlags
impl Ord for DistributionFlags
source§fn cmp(&self, other: &DistributionFlags) -> Ordering
fn cmp(&self, other: &DistributionFlags) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<DistributionFlags> for DistributionFlags
impl PartialEq<DistributionFlags> for DistributionFlags
source§fn eq(&self, other: &DistributionFlags) -> bool
fn eq(&self, other: &DistributionFlags) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<DistributionFlags> for DistributionFlags
impl PartialOrd<DistributionFlags> for DistributionFlags
source§fn partial_cmp(&self, other: &DistributionFlags) -> Option<Ordering>
fn partial_cmp(&self, other: &DistributionFlags) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Sub<DistributionFlags> for DistributionFlags
impl Sub<DistributionFlags> for DistributionFlags
source§impl SubAssign<DistributionFlags> for DistributionFlags
impl SubAssign<DistributionFlags> for DistributionFlags
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.