View Source CozySize.JEDEC (cozy_size v0.1.3)
Provides utilities for sizes using JEDEC-prefixed units.
Summary
Functions
Converts a number of bits to a {n, unit}
tuple.
Converts a number of bytes to a {n, unit}
tuple.
Converts a {n, unit}
tuple to a number of bits.
Converts a {n, unit}
tuple to a number of bytes.
Types
@type unit() :: :b | :Kb | :Mb | :Gb | :Tb | :B | :KB | :MB | :GB | :TB
Functions
@spec from_bits(CozySize.bits(), CozySize.from_opts()) :: {number(), unit()}
Converts a number of bits to a {n, unit}
tuple.
Examples
iex> CozySize.JEDEC.from_bits(0, as: :bits)
{0, :b}
iex> CozySize.JEDEC.from_bits(8, as: :bits)
{8, :b}
iex> CozySize.JEDEC.from_bits(8192, as: :bits)
{8, :Kb}
iex> CozySize.JEDEC.from_bits(2 ** 100, as: :bits)
{1152921504606846976, :Tb}
iex> CozySize.JEDEC.from_bits(1024 * 10 ** 11, as: :bits)
{93.13, :Tb}
iex> CozySize.JEDEC.from_bits(1024 * 10 ** 11, as: :bits, precision: 4)
{93.1323, :Tb}
iex> CozySize.JEDEC.from_bits(0, as: :bytes)
{0, :B}
iex> CozySize.JEDEC.from_bits(8, as: :bytes)
{1, :B}
iex> CozySize.JEDEC.from_bits(8192, as: :bytes)
{1, :KB}
iex> CozySize.JEDEC.from_bits(2 ** 100, as: :bytes)
{144115188075855872, :TB}
iex> CozySize.JEDEC.from_bits(1024 * 10 ** 11, as: :bytes)
{11.64, :TB}
iex> CozySize.JEDEC.from_bits(1024 * 10 ** 11, as: :bytes, precision: 4)
{11.6415, :TB}
@spec from_bytes(CozySize.bytes(), CozySize.from_opts()) :: {number(), unit()}
Converts a number of bytes to a {n, unit}
tuple.
Examples
iex> CozySize.JEDEC.from_bytes(0, as: :bits)
{0, :b}
iex> CozySize.JEDEC.from_bytes(8, as: :bits)
{64, :b}
iex> CozySize.JEDEC.from_bytes(8192, as: :bits)
{64, :Kb}
iex> CozySize.JEDEC.from_bytes(2 ** 100, as: :bits)
{9223372036854775808, :Tb}
iex> CozySize.JEDEC.from_bytes(1024 * 10 ** 11, as: :bits)
{745.06, :Tb}
iex> CozySize.JEDEC.from_bytes(1024 * 10 ** 11, as: :bits, precision: 4)
{745.0581, :Tb}
iex> CozySize.JEDEC.from_bytes(0, as: :bytes)
{0, :B}
iex> CozySize.JEDEC.from_bytes(8, as: :bytes)
{8, :B}
iex> CozySize.JEDEC.from_bytes(8192, as: :bytes)
{8, :KB}
iex> CozySize.JEDEC.from_bytes(2 ** 100, as: :bytes)
{1152921504606846976, :TB}
iex> CozySize.JEDEC.from_bytes(1024 * 10 ** 11, as: :bytes)
{93.13, :TB}
iex> CozySize.JEDEC.from_bytes(1024 * 10 ** 11, as: :bytes, precision: 4)
{93.1323, :TB}
@spec to_bits({number(), unit()}) :: CozySize.bits()
Converts a {n, unit}
tuple to a number of bits.
Examples
iex> CozySize.JEDEC.to_bits({0, :b})
0
iex> CozySize.JEDEC.to_bits({1, :b})
1
iex> CozySize.JEDEC.to_bits({1, :Kb})
1024
iex> CozySize.JEDEC.to_bits({1.1, :Kb})
1126.4
iex> CozySize.JEDEC.to_bits({0, :B})
0
iex> CozySize.JEDEC.to_bits({1, :B})
8
iex> CozySize.JEDEC.to_bits({1, :KB})
8192
iex> CozySize.JEDEC.to_bits({1.1, :KB})
9011.2
@spec to_bytes({number(), unit()}) :: CozySize.bits()
Converts a {n, unit}
tuple to a number of bytes.
Examples
iex> CozySize.JEDEC.to_bytes({0, :b})
0
iex> CozySize.JEDEC.to_bytes({1, :b})
0.125
iex> CozySize.JEDEC.to_bytes({1, :Kb})
128
iex> CozySize.JEDEC.to_bytes({1.1, :Kb})
140.8
iex> CozySize.JEDEC.to_bytes({0, :B})
0
iex> CozySize.JEDEC.to_bytes({1, :B})
1
iex> CozySize.JEDEC.to_bytes({1, :KB})
1024
iex> CozySize.JEDEC.to_bytes({1.1, :KB})
1126.4