SpECTRE Documentation Coverage Report
Current view: top level - ControlSystem/Measurements - NonFactoryCreatable.hpp Hit Total Coverage
Commit: 22d59f0ec25cca6837adf897838d802980351e0d Lines: 1 4 25.0 %
Date: 2024-04-27 04:42:14
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #pragma once
       5             : 
       6             : #include <pup.h>
       7             : 
       8             : #include "Utilities/Serialization/CharmPupable.hpp"
       9             : 
      10             : /*!
      11             :  * \brief Simple struct that changes a class from being factory creatable, to
      12             :  * non-factory creatable.
      13             :  *
      14             :  * It does this by defining and setting a static constexpr bool
      15             :  * `factory_creatable = false`.
      16             :  *
      17             :  * \tparam FactoryCreatableClass Any class that is already factory creatable.
      18             :  */
      19             : template <typename FactoryCreatableClass>
      20           1 : struct NonFactoryCreatableWrapper : public FactoryCreatableClass {
      21           0 :   static constexpr bool factory_creatable = false;
      22             :   using FactoryCreatableClass::FactoryCreatableClass;
      23             : 
      24           0 :   using factory_creatable_class = FactoryCreatableClass;
      25             : 
      26             :   /// \cond
      27             :   explicit NonFactoryCreatableWrapper(CkMigrateMessage* /*unused*/) {}
      28             :   using PUP::able::register_constructor;
      29             :   WRAPPED_PUPable_decl_template(NonFactoryCreatableWrapper);  // NOLINT
      30             :   /// \endcond
      31             : };
      32             : 
      33             : /// \cond
      34             : // NOLINTBEGIN
      35             : template <typename FactoryCreatableClass>
      36             : PUP::able::PUP_ID NonFactoryCreatableWrapper<FactoryCreatableClass>::my_PUP_ID =
      37             :     0;
      38             : // NOLINTEND
      39             : /// \endcond

Generated by: LCOV version 1.14