NEURON
node_data.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "membdef.h"
5 
6 namespace neuron::container::Node {
7 /** @brief Underlying storage for all Nodes.
8  */
9 struct storage: soa<storage,
10  field::AboveDiagonal,
11  field::Area,
12  field::BelowDiagonal,
13  field::Diagonal,
14  field::FastIMemSavD,
15  field::FastIMemSavRHS,
16  field::RHS,
17  field::Voltage> {
18  [[nodiscard]] std::string_view name() const {
19  return {};
20  }
21 };
22 
23 /**
24  * @brief Non-owning handle to a Node.
25  */
27 
28 /**
29  * @brief Owning handle to a Node.
30  */
31 struct owning_handle: handle_interface<owning_identifier<storage>> {
34  /**
35  * @brief Get a non-owning handle from an owning handle.
36  */
37  [[nodiscard]] handle non_owning_handle() {
39  }
40 };
41 } // namespace neuron::container::Node
Base class defining the public API of Node handles.
Definition: node.hpp:90
handle_base< owning_identifier< storage > > base_type
Definition: node.hpp:91
Owning handle to a Node.
Definition: node_data.hpp:31
handle non_owning_handle()
Get a non-owning handle from an owning handle.
Definition: node_data.hpp:37
Underlying storage for all Nodes.
Definition: node_data.hpp:17
std::string_view name() const
Definition: node_data.hpp:18
auto & underlying_storage()
Obtain a reference to the storage this handle refers to.
Definition: view_utils.hpp:69
non_owning_identifier_without_container id() const
Obtain a lightweight identifier of the current entry.
Definition: view_utils.hpp:54
A non-owning permutation-stable identifier for a entry in a container.
Utility for generating SOA data structures.