pub struct DistributionFlags { /* private fields */ }
Expand description

Distribution flags.

Implementations§

source§

impl DistributionFlags

source

pub const PUBLISHED: Self = _

The node is to be published and part of the global namespace.

source

pub const ATOM_CACHE: Self = _

The node implements an atom cache (obsolete).

source

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.

source

pub const DIST_MONITOR: Self = _

The node implements distributed process monitoring.

[NOTE] This flag will become mandatory in OTP 25.

source

pub const FUN_TAGS: Self = _

The node uses separate tag for funs (lambdas) in the distribution protocol.

source

pub const DIST_MONITOR_NAME: Self = _

The node implements distributed named process monitoring.

source

pub const HIDDEN_ATOM_CACHE: Self = _

The (hidden) node implements atom cache (obsolete).

source

pub const NEW_FUN_TAGS: Self = _

The node understands new fun tags.

[NOTE] This flag is mandatory. If not present, the connection is refused.

source

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.

source

pub const EXPORT_PTR_TAG: Self = _

This node understands EXPORT_EXT tag.

[NOTE] This flag will become mandatory in OTP 25.

source

pub const BIT_BINARIES: Self = _

The node understands bit binaries.

[NOTE] This flag will become mandatory in OTP 25.

source

pub const NEW_FLOATS: Self = _

The node understandss new float format.

[NOTE] This flag will become mandatory in OTP 25.

source

pub const UNICODE_IO: Self = _

This node allows unicode characters in I/O operations.

source

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.

source

pub const SMALL_ATOM_TAGS: Self = _

The node understands the SMALL_ATOM_EXT tag.

source

pub const UTF8_ATOMS: Self = _

The node understands UTF-8 encoded atoms.

[NOTE] This flag is mandatory. If not present, the connection is refused.

source

pub const MAP_TAGS: Self = _

The node understands maps.

[NOTE] This flag will become mandatory in OTP 25.

source

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.

source

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.

source

pub const BIG_SEQTRACE_LABELS: Self = _

The node understands any term as the seqtrace label.

source

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.

source

pub const FRAGMENTS: Self = _

Use fragmented distribution messages to send large messages.

source

pub const HANDSHAKE_23: Self = _

The node supports the new connection setup handshake (version 6) introduced in OTP 23.

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.

source

pub const SPAWN: Self = _

Set if the SPAWN_REQUEST, SPAWN_REQUEST_TT, SPAWN_REPLY, SPAWN_REPLY_TT control messages are supported.

source

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.

source

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.

source

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.

source

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

pub const fn empty() -> Self

Returns an empty set of flags.

source

pub const fn all() -> Self

Returns the set containing all flags.

source

pub const fn bits(&self) -> u64

Returns the raw value of the flags currently stored.

source

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.

source

pub const fn from_bits_truncate(bits: u64) -> Self

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

source

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.

source

pub const fn is_empty(&self) -> bool

Returns true if no flags are currently stored.

source

pub const fn is_all(&self) -> bool

Returns true if all flags are currently set.

source

pub const fn intersects(&self, other: Self) -> bool

Returns true if there are flags common to both self and other.

source

pub const fn contains(&self, other: Self) -> bool

Returns true if all of the flags in other are contained within self.

source

pub fn insert(&mut self, other: Self)

Inserts the specified flags in-place.

source

pub fn remove(&mut self, other: Self)

Removes the specified flags in-place.

source

pub fn toggle(&mut self, other: Self)

Toggles the specified flags in-place.

source

pub fn set(&mut self, other: Self, value: bool)

Inserts or removes the specified flags depending on the passed value.

source

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.

source

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.

source

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.

source

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.

source

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

source

pub fn new() -> Self

Makes a new DistributionFlags with the default flags.

This is equivalent to the following code:

DistributionFlags::mandatory();
source

pub fn mandatory() -> Self

Gets the mandatory flags (in OTP 26).

Trait Implementations§

source§

impl Binary for DistributionFlags

source§

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

Formats the value using the given formatter.
source§

impl BitAnd<DistributionFlags> for DistributionFlags

source§

fn bitand(self, other: Self) -> Self

Returns the intersection between the two sets of flags.

§

type Output = DistributionFlags

The resulting type after applying the & operator.
source§

impl BitAndAssign<DistributionFlags> for DistributionFlags

source§

fn bitand_assign(&mut self, other: Self)

Disables all flags disabled in the set.

source§

impl BitOr<DistributionFlags> for DistributionFlags

source§

fn bitor(self, other: DistributionFlags) -> Self

Returns the union of the two sets of flags.

§

type Output = DistributionFlags

The resulting type after applying the | operator.
source§

impl BitOrAssign<DistributionFlags> for DistributionFlags

source§

fn bitor_assign(&mut self, other: Self)

Adds the set of flags.

source§

impl BitXor<DistributionFlags> for DistributionFlags

source§

fn bitxor(self, other: Self) -> Self

Returns the left flags, but with all the right flags toggled.

§

type Output = DistributionFlags

The resulting type after applying the ^ operator.
source§

impl BitXorAssign<DistributionFlags> for DistributionFlags

source§

fn bitxor_assign(&mut self, other: Self)

Toggles the set of flags.

source§

impl Clone for DistributionFlags

source§

fn clone(&self) -> DistributionFlags

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 DistributionFlags

source§

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

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

impl Default for DistributionFlags

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Extend<DistributionFlags> for DistributionFlags

source§

fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl FromIterator<DistributionFlags> for DistributionFlags

source§

fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self

Creates a value from an iterator. Read more
source§

impl Hash for DistributionFlags

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 LowerHex for DistributionFlags

source§

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

Formats the value using the given formatter.
source§

impl Not for DistributionFlags

source§

fn not(self) -> Self

Returns the complement of this set of flags.

§

type Output = DistributionFlags

The resulting type after applying the ! operator.
source§

impl Octal for DistributionFlags

source§

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

Formats the value using the given formatter.
source§

impl Ord for DistributionFlags

source§

fn cmp(&self, other: &DistributionFlags) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl PartialEq<DistributionFlags> for DistributionFlags

source§

fn eq(&self, other: &DistributionFlags) -> 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 PartialOrd<DistributionFlags> for DistributionFlags

source§

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 · source§

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 · source§

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
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Sub<DistributionFlags> for DistributionFlags

source§

fn sub(self, other: Self) -> Self

Returns the set difference of the two sets of flags.

§

type Output = DistributionFlags

The resulting type after applying the - operator.
source§

impl SubAssign<DistributionFlags> for DistributionFlags

source§

fn sub_assign(&mut self, other: Self)

Disables all flags enabled in the set.

source§

impl UpperHex for DistributionFlags

source§

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

Formats the value using the given formatter.
source§

impl Copy for DistributionFlags

source§

impl Eq for DistributionFlags

source§

impl StructuralEq for DistributionFlags

source§

impl StructuralPartialEq for DistributionFlags

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToOwned for Twhere 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> TryAsRef<T> for T

source§

impl<T, U> TryFrom<U> for Twhere 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 Twhere 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.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V