defmodule Benchee.Conversion.Unit do @moduledoc """ A representation of the different units used in `Benchee.Conversion.Duration` and `Benchee.Conversion.Count`. A unit is characterized by: * name - an atom representation of the unit for easy access (`:microseconds`, `thousand`) * magnitude - compared to he base unit (the smallest unit) what's the factor you had to multiply it by to get back to the base unit. E.g. the thousand unit has a magnitude of `1_000`. * label - a string that is used as a unit label (`"K"` for a thousand f.ex.) * long - a string giving the long version of the label (`"Thousand"`) """ defstruct [:name, :magnitude, :label, :long] @type t :: %Benchee.Conversion.Unit{name: atom, magnitude: non_neg_integer, label: String.t, long: String.t} end