Packages
livebook
0.3.0
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook/notebook/cell.ex
defmodule Livebook.Notebook.Cell do
@moduledoc false
# Data structure representing a single cell in a notebook.
#
# A cell is the smallest unit of work in a notebook.
# It may consist of text content, outputs, rendered content
# and other special forms.
alias Livebook.Utils
alias Livebook.Notebook.Cell
@type id :: Utils.id()
@type t :: Cell.Elixir.t() | Cell.Markdown.t() | Cell.Input.t()
@type type :: :markdown | :elixir | :input
@doc """
Returns an empty cell of the given type.
"""
@spec new(type()) :: t()
def new(type)
def new(:markdown), do: Cell.Markdown.new()
def new(:elixir), do: Cell.Elixir.new()
def new(:input), do: Cell.Input.new()
@doc """
Returns an atom representing the type of the given cell.
"""
@spec type(t()) :: type()
def type(cell)
def type(%Cell.Elixir{}), do: :elixir
def type(%Cell.Markdown{}), do: :markdown
def type(%Cell.Input{}), do: :input
end