defmodule Membrane.ChildEntry do
@moduledoc """
Struct describing child entry of a parent.
The public fields are:
- `name` - child name
- `module` - child module
- `group` - child group name
- `options` - options passed to the child
- `component_type` - either `:element` or `:bin`
- `playback` - either `:stopped` or `:playing`
Other fields in the struct ARE NOT PART OF THE PUBLIC API and should not be
accessed or relied on.
"""
use Bunch.Access
@typedoc @moduledoc
@type t :: %__MODULE__{
name: Membrane.Child.name(),
module: module,
options: struct | nil,
component_type: :element | :bin,
pid: pid,
clock: Membrane.Clock.t(),
sync: Membrane.Sync.t(),
terminating?: boolean(),
group: Membrane.Child.group()
}
defstruct [
:name,
:module,
:options,
:component_type,
:pid,
:clock,
:sync,
:spec_ref,
:group,
initialized?: false,
ready?: false,
terminating?: false
]
end