{"schema":1,"title":"API glossary","description":"Kinds, modifiers and package labels in the Elixir API reference.","url":"https://libtmux.org/en/elixir/latest/reference/glossary/","groups":[{"id":"symbol-kinds","title":"Symbol kinds","description":"Kinds identify declarations in the Elixir API reference.","terms":[{"id":"module","definition":"An Elixir module, a named collection of functions, macros and types defined with defmodule.","detail":"Module names are atoms, and a nested name such as LibTmux.Control.Request is one flat module rather than a child of LibTmux.Control.","references":[{"title":"Elixir modules and functions","url":"https://hexdocs.pm/elixir/modules-and-functions.html"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#module"},{"id":"interface","definition":"An Elixir behaviour, a module that declares callbacks other modules implement.","detail":"A module implements a behaviour with the @behaviour attribute and defines each required callback.","references":[{"title":"Elixir behaviours","url":"https://hexdocs.pm/elixir/typespecs.html#behaviours"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#interface"},{"id":"struct","definition":"An Elixir module that defines a struct: a map with a fixed set of keys and optional defaults.","detail":"Fields hold values and are never reassigned. Functions on the module return a new struct rather than changing one.","references":[{"title":"Elixir structs","url":"https://hexdocs.pm/elixir/structs.html"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#struct"},{"id":"function","definition":"An Elixir function identified by its module, name and arity.","detail":"Functions of one name and different arities are different functions. A name ending in ! raises on failure, and a name ending in ? returns a boolean.","references":[{"title":"Elixir functions and arity","url":"https://hexdocs.pm/elixir/modules-and-functions.html"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#function"},{"id":"method","definition":"A callback that a behaviour declares and an implementing module defines.","detail":"A callback is called through the implementing module, not through the behaviour that declares it.","references":[{"title":"Elixir behaviour callbacks","url":"https://hexdocs.pm/elixir/typespecs.html#behaviours"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#method"},{"id":"property","definition":"A field of an Elixir struct, read with dot access or pattern matching.","detail":"A field has no accessor function; structs are plain maps, so the value is stored as the field holds it.","references":[{"title":"Elixir structs","url":"https://hexdocs.pm/elixir/structs.html"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#property"},{"id":"typealias","definition":"An Elixir type declared with @type or @opaque, named and given an arity.","detail":"Types document values for readers and tools. They are not checked when a function runs.","references":[{"title":"Elixir user-defined types","url":"https://hexdocs.pm/elixir/typespecs.html#user-defined-types"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#typealias"},{"id":"exception","definition":"An Elixir struct declared with defexception, which can be raised and rescued.","detail":"The struct also carries the fields of the error. A bang function raises it; the plain function returns it in an error tuple.","references":[{"title":"Elixir exceptions","url":"https://hexdocs.pm/elixir/Kernel.html#defexception/1"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#exception"}]},{"id":"modifiers","title":"Modifiers","description":"Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature.","terms":[{"id":"opaque","definition":"An Elixir type declared with @opaque, whose structure callers must not depend on.","detail":"Other modules should build and inspect the value only through the declaring module’s functions.","references":[{"title":"Elixir user-defined types","url":"https://hexdocs.pm/elixir/typespecs.html#user-defined-types"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#opaque"},{"id":"macro","definition":"An Elixir macro, defined with defmacro and expanded at compile time.","detail":"A caller must require or import the defining module before using the macro.","references":[{"title":"Elixir macros","url":"https://hexdocs.pm/elixir/Kernel.html#defmacro/2"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#macro"},{"id":"abstract","definition":"A callback of a behaviour, declared without a body.","references":[{"title":"Elixir behaviour callbacks","url":"https://hexdocs.pm/elixir/typespecs.html#behaviours"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#abstract"},{"id":"deprecated","definition":"A declaration marked with the @deprecated attribute.","detail":"The compiler warns at call sites of a deprecated function. The message names the replacement when the author gave one.","references":[{"title":"Elixir deprecations","url":"https://hexdocs.pm/elixir/Module.html"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#deprecated"},{"id":"overload","definition":"A function with several @spec clauses, each describing one accepted combination of argument types.","detail":"The clauses describe one function. Which clause applies depends on the arguments, not on a separate definition.","references":[{"title":"Elixir function specifications","url":"https://hexdocs.pm/elixir/typespecs.html#defining-a-specification"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#overload"}]},{"id":"package-context","title":"Package context","description":"Package labels identify where an API is supplied.","terms":[{"id":"package","definition":"The Hex package supplying this API.","detail":"A package name and its application name are the same in a Mix dependency, and the module names it defines are independent of both.","references":[{"title":"Hex packages","url":"https://hex.pm/docs/usage"}],"url":"https://libtmux.org/en/elixir/latest/reference/glossary/#package"}]}]}