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.
Source§impl DistributionFlags
impl DistributionFlags
Sourcepub const fn bits(&self) -> u64
pub const fn bits(&self) -> u64
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from a bits value.
This method will return None if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u64) -> Self
pub const fn from_bits_retain(bits: u64) -> Self
Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None if name is empty or doesn’t
correspond to any named flag.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert when value is true or remove when value is false.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!) of the bits in a flags value, truncating the result.
Source§impl DistributionFlags
impl DistributionFlags
Sourcepub const fn iter(&self) -> Iter<DistributionFlags>
pub const fn iter(&self) -> Iter<DistributionFlags>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<DistributionFlags>
pub const fn iter_names(&self) -> IterNames<DistributionFlags>
Yield a set of contained named flags values.
This method is like iter, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
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 for DistributionFlags
impl BitAnd for DistributionFlags
Source§impl BitAndAssign for DistributionFlags
impl BitAndAssign for DistributionFlags
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&) of the bits in two flags values.
Source§impl BitOr for DistributionFlags
impl BitOr for DistributionFlags
Source§fn bitor(self, other: DistributionFlags) -> Self
fn bitor(self, other: DistributionFlags) -> Self
The bitwise or (|) of the bits in two flags values.
Source§type Output = DistributionFlags
type Output = DistributionFlags
| operator.Source§impl BitOrAssign for DistributionFlags
impl BitOrAssign for DistributionFlags
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|) of the bits in two flags values.
Source§impl BitXor for DistributionFlags
impl BitXor for DistributionFlags
Source§impl BitXorAssign for DistributionFlags
impl BitXorAssign for DistributionFlags
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
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)
The bitwise or (|) of the bits in each flags value.
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 Flags for DistributionFlags
impl Flags for DistributionFlags
Source§const FLAGS: &'static [Flag<DistributionFlags>]
const FLAGS: &'static [Flag<DistributionFlags>]
Source§fn from_bits_retain(bits: u64) -> DistributionFlags
fn from_bits_retain(bits: u64) -> DistributionFlags
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in a flags value, truncating the result.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
The bitwise or (|) of the bits in each flags value.
Source§impl Hash for DistributionFlags
impl Hash for DistributionFlags
Source§impl IntoIterator for DistributionFlags
impl IntoIterator 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 PartialEq for DistributionFlags
impl PartialEq for DistributionFlags
Source§impl PublicFlags for DistributionFlags
impl PublicFlags for DistributionFlags
Source§impl Sub for DistributionFlags
impl Sub for DistributionFlags
Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§type Output = DistributionFlags
type Output = DistributionFlags
- operator.Source§impl SubAssign for DistributionFlags
impl SubAssign for DistributionFlags
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.