posexional v0.0.2 Posexional.Field.Value

this module represent a single field in a row of a positional file

Summary

Functions

new(name, size, filler \\ 32, alignment \\ :left)

Specs

new(atom, integer, char, atom) :: %Posexional.Field.Value{alignment: term, filler: term, name: term, size: term}
write(value, value)

Specs

write(%Posexional.Field.Value{alignment: term, filler: term, name: term, size: term}, binary) :: binary

outputs a field

Examples

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 5), "test")
"test "

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 5), "too long")
** (RuntimeError) The value too long is too long for the test field. The maximum size is 5 while the value is 8

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 10), "test")
"test      "

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 10), "test")
"test      "

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 10, ?0), "test")
"test000000"

iex> Posexional.Field.Value.write(Posexional.Field.Value.new(:test, 10, ?0, :right), "test")
"000000test"