View Source BeamMeta (BeamMeta v0.1.0)

BeamMeta is a library to programmatically get information related to Beam languages.

So far the library has the following modules:

Additionally, there is a parent library called BeamLangsMetaData which contains the udpated data used by this library such as the compatibility tables, and release information, and this library is based on.

Link to this section Summary

Types

It is a string that represents an Elixir version.

An Elixir version in either a Version.t/0 format or a string representation of it.

A non-empty keyword list with key_type specified.

It is an integer that represents the Erlang/OTP major version.

An Erlang/OTP version in either a string or an Version.t/0.

Whether the release is a prerelease or a final release.

Link to this section Types

Specs

elixir_version_key() :: String.t()

It is a string that represents an Elixir version.

It could be "MAJOR.MINOR" or a fully qualified version "MAJOR.MINOR.PATCH", for example: "1.2" or "1.2.3".

Link to this type

elixir_version_representation()

View Source

Specs

elixir_version_representation() :: Version.t() | String.t()

An Elixir version in either a Version.t/0 format or a string representation of it.

Link to this type

nonempty_keyword(key_type, value_type)

View Source

Specs

nonempty_keyword(key_type, value_type) :: [{key_type, value_type}, ...]

A non-empty keyword list with key_type specified.

For example: nonempty_keyword(version :: atom(), map()).

Specs

otp_version_key() :: non_neg_integer()

It is an integer that represents the Erlang/OTP major version.

For example: 24.

Link to this type

otp_version_representation()

View Source

Specs

otp_version_representation() :: Version.t() | String.t()

An Erlang/OTP version in either a string or an Version.t/0.

A note on Erlang/OTP versions: The format for these versions does not align with SemVer versions, which is the format supported by the Elixir Version module.

In order to offer the benefits of interoperability with the Elixir language, we convert these versions to v:Version.t/0, so for example the version "23.3.4.10", we convert it to version #Version<23.3.4-10>.

Specs

release_kind() :: :release | :prerelease

Whether the release is a prerelease or a final release.