qtty-cpp 0.4.5
Header-only C++ wrapper for qtty
Loading...
Searching...
No Matches
pressure.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2// Copyright (C) 2026 Vallés Puig, Ramon
3
4#pragma once
5
6#include "../ffi_core.hpp"
7
8namespace qtty {
9
10struct PascalTag {};
13struct KilopascalTag {};
14struct MegapascalTag {};
15struct GigapascalTag {};
16struct BarTag {};
17struct AtmosphereTag {};
18struct TorrTag {};
22
23template <> struct UnitTraits<PascalTag> {
24 static constexpr UnitId unit_id() { return UNIT_ID_PASCAL; }
25 static constexpr std::string_view symbol() { return "Pa"; }
26 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
27};
28template <> struct UnitTraits<MillipascalTag> {
29 static constexpr UnitId unit_id() { return UNIT_ID_MILLIPASCAL; }
30 static constexpr std::string_view symbol() { return "mPa"; }
31 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
32};
33template <> struct UnitTraits<HectopascalTag> {
34 static constexpr UnitId unit_id() { return UNIT_ID_HECTOPASCAL; }
35 static constexpr std::string_view symbol() { return "hPa"; }
36 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
37};
38template <> struct UnitTraits<KilopascalTag> {
39 static constexpr UnitId unit_id() { return UNIT_ID_KILOPASCAL; }
40 static constexpr std::string_view symbol() { return "kPa"; }
41 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
42};
43template <> struct UnitTraits<MegapascalTag> {
44 static constexpr UnitId unit_id() { return UNIT_ID_MEGAPASCAL; }
45 static constexpr std::string_view symbol() { return "MPa"; }
46 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
47};
48template <> struct UnitTraits<GigapascalTag> {
49 static constexpr UnitId unit_id() { return UNIT_ID_GIGAPASCAL; }
50 static constexpr std::string_view symbol() { return "GPa"; }
51 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
52};
53template <> struct UnitTraits<BarTag> {
54 static constexpr UnitId unit_id() { return UNIT_ID_BAR; }
55 static constexpr std::string_view symbol() { return "bar"; }
56 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
57};
58template <> struct UnitTraits<AtmosphereTag> {
59 static constexpr UnitId unit_id() { return UNIT_ID_ATMOSPHERE; }
60 static constexpr std::string_view symbol() { return "atm"; }
61 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
62};
63template <> struct UnitTraits<TorrTag> {
64 static constexpr UnitId unit_id() { return UNIT_ID_TORR; }
65 static constexpr std::string_view symbol() { return "Torr"; }
66 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
67};
69 static constexpr UnitId unit_id() { return UNIT_ID_MILLIMETER_OF_MERCURY; }
70 static constexpr std::string_view symbol() { return "mmHg"; }
71 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
72};
73template <> struct UnitTraits<PoundPerSquareInchTag> {
74 static constexpr UnitId unit_id() { return UNIT_ID_POUND_PER_SQUARE_INCH; }
75 static constexpr std::string_view symbol() { return "psi"; }
76 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
77};
78template <> struct UnitTraits<InchOfMercuryTag> {
79 static constexpr UnitId unit_id() { return UNIT_ID_INCH_OF_MERCURY; }
80 static constexpr std::string_view symbol() { return "inHg"; }
81 static constexpr DimensionId dimension() { return DIMENSION_ID_PRESSURE; }
82};
83
96
97} // namespace qtty
constexpr bool is_angular_v
Definition angles.hpp:49
static constexpr DimensionId dimension()
Definition pressure.hpp:61
static constexpr UnitId unit_id()
Definition pressure.hpp:59
static constexpr std::string_view symbol()
Definition pressure.hpp:60
static constexpr UnitId unit_id()
Definition pressure.hpp:54
static constexpr DimensionId dimension()
Definition pressure.hpp:56
static constexpr std::string_view symbol()
Definition pressure.hpp:55
static constexpr UnitId unit_id()
Definition pressure.hpp:49
static constexpr DimensionId dimension()
Definition pressure.hpp:51
static constexpr std::string_view symbol()
Definition pressure.hpp:50
static constexpr UnitId unit_id()
Definition pressure.hpp:34
static constexpr std::string_view symbol()
Definition pressure.hpp:35
static constexpr DimensionId dimension()
Definition pressure.hpp:36
static constexpr std::string_view symbol()
Definition pressure.hpp:80
static constexpr UnitId unit_id()
Definition pressure.hpp:79
static constexpr DimensionId dimension()
Definition pressure.hpp:81
static constexpr std::string_view symbol()
Definition pressure.hpp:40
static constexpr UnitId unit_id()
Definition pressure.hpp:39
static constexpr DimensionId dimension()
Definition pressure.hpp:41
static constexpr DimensionId dimension()
Definition pressure.hpp:46
static constexpr std::string_view symbol()
Definition pressure.hpp:45
static constexpr UnitId unit_id()
Definition pressure.hpp:44
static constexpr DimensionId dimension()
Definition pressure.hpp:71
static constexpr UnitId unit_id()
Definition pressure.hpp:69
static constexpr std::string_view symbol()
Definition pressure.hpp:70
static constexpr UnitId unit_id()
Definition pressure.hpp:29
static constexpr DimensionId dimension()
Definition pressure.hpp:31
static constexpr std::string_view symbol()
Definition pressure.hpp:30
static constexpr UnitId unit_id()
Definition pressure.hpp:24
static constexpr DimensionId dimension()
Definition pressure.hpp:26
static constexpr std::string_view symbol()
Definition pressure.hpp:25
static constexpr std::string_view symbol()
Definition pressure.hpp:75
static constexpr UnitId unit_id()
Definition pressure.hpp:74
static constexpr DimensionId dimension()
Definition pressure.hpp:76
static constexpr UnitId unit_id()
Definition pressure.hpp:64
static constexpr DimensionId dimension()
Definition pressure.hpp:66
static constexpr std::string_view symbol()
Definition pressure.hpp:65