Packages
gleam_erlang
0.29.0
1.3.0
1.2.0
1.1.0
1.0.0
1.0.0-rc1
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.1
0.18.0
0.18.0-rc1
retired
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.0
Types and functions for programs running on Erlang!
Current section
Files
Jump to
Current section
Files
src/gleam/erlang/port.gleam
import gleam/dynamic.{type DecodeErrors, type Dynamic}
/// Ports are how code running on the Erlang virtual machine interacts with
/// the outside world. Bytes of data can be sent to and read from ports,
/// providing a form of message passing to an external program or resource.
///
/// For more information on ports see the [Erlang ports documentation][1].
///
/// [1]: https://erlang.org/doc/reference_manual/ports.html
///
pub type Port
/// Checks to see whether a `Dynamic` value is a port, and return the port if
/// it is.
///
/// ## Examples
///
/// > import gleam/dynamic
/// > from_dynamic(dynamic.from(process.self()))
/// Ok(process.self())
///
/// > from_dynamic(dynamic.from(123))
/// Error([DecodeError(expected: "Port", found: "Int", path: [])])
///
@external(erlang, "gleam_erlang_ffi", "port_from_dynamic")
pub fn port_from_dynamic(from from: Dynamic) -> Result(Port, DecodeErrors)