libbio
Loading...
Searching...
No Matches
chemical/symmetry/BaseData.h
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC.
3 * Biology (aka Develop Biology) is a framework for approaching software
4 * development from a natural sciences perspective.
5 *
6 * Copyright (C) 2026 Séon O'Shannon & eons LLC
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
27
28#include <cstddef>
29
30//@formatter:off
31#if BIO_CPP_VERSION < 11
32 #include <stdint.h>
33#else
34 #include <cstdint>
35#endif
36//@formatter:on
37
38namespace bio {
39namespace chemical {
40namespace base_data {
41
60// --- Kind checks ---------------------------------------------------------
61
62bool IsArray(const Symmetry& symmetry);
63bool IsMap(const Symmetry& symmetry);
64bool IsMapEntry(const Symmetry& symmetry);
65bool IsTag(const Symmetry& symmetry);
66
68
69// --- Array ---------------------------------------------------------------
70
77
85
89std::size_t ArraySize(const Symmetry& symmetry);
90
97
98// --- Map & MapEntry ------------------------------------------------------
99
101
108
115
119std::size_t MapSize(const Symmetry& symmetry);
120
126Pointer< const Symmetry > MapEntryAt(const Symmetry& symmetry, std::size_t index);
127
136
137// --- Tag -----------------------------------------------------------------
138
145
152
158
165
166// --- Generic helpers -----------------------------------------------------
167
173
174} //base_data namespace
175} //chemical namespace
176} //bio namespace
double value
Definition Potential.cpp:41
Definition Pointer.h:115
Definition chemical/symmetry/Symmetry.h:55
bool IsMap(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:177
bool IsBaseDataStructural(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:201
Pointer< physical::Symmetry > MapEntryKey(Symmetry &entry)
Definition chemical/symmetry/BaseData.cpp:345
bool IsMapEntry(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:182
Pointer< physical::Symmetry > TagValue(Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:426
void InitTag(Symmetry &symmetry, uint64_t tagNumber)
Definition chemical/symmetry/BaseData.cpp:383
std::size_t MapSize(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:297
void InitMap(Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:258
bool IsTag(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:187
Pointer< Symmetry > MapEntryAt(Symmetry &symmetry, std::size_t index)
Definition chemical/symmetry/BaseData.cpp:306
Pointer< Symmetry > MakeMapEntry(Pointer< physical::Symmetry > key, Pointer< physical::Symmetry > value)
Definition chemical/symmetry/BaseData.cpp:263
Pointer< physical::Symmetry > ArrayAt(Symmetry &symmetry, std::size_t index)
Definition chemical/symmetry/BaseData.cpp:238
bool ArrayAppend(Symmetry &symmetry, Pointer< physical::Symmetry > child)
Definition chemical/symmetry/BaseData.cpp:213
bool TagSetValue(Symmetry &symmetry, Pointer< physical::Symmetry > value)
Definition chemical/symmetry/BaseData.cpp:389
std::size_t ArraySize(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:229
bool TryGetTagNumber(const Symmetry &symmetry, uint64_t &out)
Definition chemical/symmetry/BaseData.cpp:416
bool IsArray(const Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:172
void InitArray(Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:208
void ClearChildren(Symmetry &symmetry)
Definition chemical/symmetry/BaseData.cpp:446
Pointer< physical::Symmetry > MapEntryValue(Symmetry &entry)
Definition chemical/symmetry/BaseData.cpp:363
bool MapAppend(Symmetry &symmetry, Pointer< Symmetry > entry)
Definition chemical/symmetry/BaseData.cpp:277
Definition FinalCell.h:29