View Source Posexional.File (posexional v1.1.0-rc.0)

a Posexional.File is the main struct to manage a positional file

Summary

Types

@type t() :: %Posexional.File{rows: term(), separator: term()}

Functions

@spec find_row(t(), atom()) :: Posexional.Row.t()
@spec get_counters(t()) :: [{atom(), pid()}]
@spec manage_counters(t()) :: t()

adds a generator for every progressive_number_field in the file.

The fields are grouped by name, so that you can specify many counters for every row

Link to this function

new(rows, separator \\ nil)

View Source
@spec read(t(), binary()) :: [tuple() | String.t()]
@spec stream(Enumerable.t(), t()) :: Enumerable.t()
@spec write(t(), Keyword.t()) :: binary()

creates a file from values

Examples

iex> write(
...>   Posexional.File.new([ Posexional.Row.new(:row_test, [ Posexional.Field.Value.new(:test1, 5) ]) ]),
...>   [row_test: [test1: "test"], row_test: [test1: "t"]]
...> )
"test \nt    "

iex> write(
...>   Posexional.File.new([ Posexional.Row.new(:row_test, [ Posexional.Field.Value.new(:test1, 5) ]) ]),
...>   [row_test: [test1: "test"], ne: [test1: "t"]]
...> )
** (RuntimeError) row ne not found
Link to this function

write_path!(file, values, path)

View Source
@spec write_path!(t(), Keyword.t(), binary()) :: {:ok, binary()} | {:error, any()}