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