# Link to this section Summary

## Types

Known SI prefixes.

Struct representing single product. Base unit for `ExKcal.Products`.

Volume of substance and unit it is represented in.

Weight of substance and unit it is represented in.

## Functions

Calculate nutrition of two `ExKcal.Product`s.

# si_prefix()

## Specs

```si_prefix() ::
:Y
| :Z
| :E
| :P
| :T
| :G
| :M
| :k
| :h
| :da
| :d
| :c
| :m
| :μ
| :n
| :p
| :f
| :a
| :z
| :y```

Known SI prefixes.

# t()

## Specs

```t() :: %ExKcal.Product{
alcohols: ExKcal.Alcohols.t(),
brand: String.t(),
carbs: ExKcal.Carbs.t(),
description: String.t(),
fats: ExKcal.Fats.t(),
kcal: float(),
minerals: ExKcal.Minerals.t(),
name: String.t(),
note: String.t(),
origin: [String.t()],
produced: [String.t()],
producer: String.t(),
proteins: weight(),
salt: weight(),
vitamins: ExKcal.Vitamins.t(),
volume: volume(),
weight: weight()
}```

Struct representing single product. Base unit for `ExKcal.Products`.

# volume()

## Specs

`volume() :: {float(), :l | :dl | :ml} | {nil, :none}`

Volume of substance and unit it is represented in.

# weight()

## Specs

`weight() :: {float(), :kg | :g | :mg | :μg} | {nil, :none}`

Weight of substance and unit it is represented in.

# Link to this section Functions

`sum(t(), t()) :: t()`
Calculate nutrition of two `ExKcal.Product`s.