# Tagging (and Re-tagging)

This example illustrates the fundamental building block of `EngThermBase.jl`

, which is engineerign thermodynamics quantities—herein denoted as `AMOUNTS`

as not to confuse with Unitful.jl's `Quantity`

unit'ed type.

First one loads the package:

`using EngThermBase`

then, one can either use (i) an `AMOUNTS`

's type constructor, or (ii) it's corresponding function, or (iii) it's alias as to build a tagged amount:

## Tagging with type constructors:

All `EngThermBase.jl`

amount types are 5 ASCII characters long ending with "`amt`

". For instance, the temperature type is `T_amt`

:

`T1 = T_amt(325u"K") # This constructor checks and converts units if necessary`

`T₆₄: 325.00 K`

`T2 = T_amt(325) # This constructor applies the type's default unit`

`T₆₄: 325.00 K`

`T1 == T2`

`true`

## Tagging with the corresponding function:

A given amount type's corresponding function is named after the first 2 characters of a type name. The temperature, for instance, will be `T_`

:

`T3 = T_() # The temp. function method without arguments returns the _stdT`

`T₆₄: 298.15 K`

`T4 = T_(40u"°C") # This fallsback to the appropriate `T_amt` constructor`

`T₆₄: 313.15 K`

## Tagging with the function alias:

`EngThermBase.jl`

amount function aliases are meant to render the code more readable (closer to mainstream engineering textbook notation) while using high- Unicode code-points (as to avoid polluting the variable space with one-letter functions.

`T5 = 𝗧() # \bsansT<tab>, identical to `T_()``

`T₆₄: 298.15 K`

`T6 = 𝗧(40u"°C") # Identical to `T_(40u"°C")``

`T₆₄: 313.15 K`

`(T3 == T5, T4 == T6)`

`(true, true)`