libadc-cxx 1.0.0
Structured logging for scientific computing
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
types.hpp File Reference
#include <memory>
#include <string>
#include <string_view>
#include <vector>
#include <list>
#include <set>
#include <complex>
#include <variant>
#include <array>
#include <sys/time.h>
#include "adc/adc_config.h"
Include dependency graph for types.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  adc::version
 A version with tags list. More...
 
struct  adc::field
 
class  adc::var_string
 return string for printing from variant v.
More...
 

Namespaces

namespace  adc
 

Macros

#define ADC_SUPPORT_GPU_FLOATS   0
 Set to 1 if 8/16 float types for gpus are supported. ADC_SUPPORT_GPU_FLOATS should be defined by build-time configuration.
 
#define ADC_SUPPORT_EXTENDED_FLOATS   0
 Set to 1 if 80 bit floats for cpus are supported. ADC_SUPPORT_EXTENDED_FLOATS should be defined by build-time configuration.
 
#define ADC_SUPPORT_QUAD_FLOATS   0
 Set to 1 if 128 bit floats for cpus are supported. ADC_SUPPORT_QUAD_FLOATS should be defined by build-time configuration.
 
#define ADC_BOOST_JSON_PUBLIC   0
 include boost::json support in the API ADC_BOOST_JSON_PUBLIC could be defined by build-time configuration. If it is, this library forces boost::json and other boost dependencies on the build of any application which uses it.
 

Typedefs

typedef std::variant< bool, char, char16_t, char32_t, int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t, uint64_t, float, double, std::complex< float >, std::complex< double >, std::array< int64_t, 2 >, std::string, std::shared_ptr< bool[]>, std::shared_ptr< char[]>, std::shared_ptr< char16_t[]>, std::shared_ptr< char32_t[]>, std::shared_ptr< int8_t[]>, std::shared_ptr< int16_t[]>, std::shared_ptr< int32_t[]>, std::shared_ptr< int64_t[]>, std::shared_ptr< uint8_t[]>, std::shared_ptr< uint16_t[]>, std::shared_ptr< uint32_t[]>, std::shared_ptr< uint64_t[]>, std::shared_ptr< float[]>, std::shared_ptr< double[]>, std::shared_ptr< std::complex< float >[]>, std::shared_ptr< std::complex< double >[]>, std::shared_ptr< std::string[]> > adc::variant
 variant for querying builder data.
 

Enumerations

enum  adc::scalar_type {
  adc::cp_none , adc::cp_bool , adc::cp_char , adc::cp_char16 ,
  adc::cp_char32 , adc::cp_cstr , adc::cp_json_str , adc::cp_yaml_str ,
  adc::cp_xml_str , adc::cp_json , adc::cp_path , adc::cp_number_str ,
  adc::cp_uint8 , adc::cp_uint16 , adc::cp_uint32 , adc::cp_uint64 ,
  adc::cp_int8 , adc::cp_int16 , adc::cp_int32 , adc::cp_int64 ,
  adc::cp_f32 , adc::cp_f64 , adc::cp_f80 , adc::cp_f128 ,
  adc::cp_f8_e4m3 , adc::cp_f8_e5m2 , adc::cp_f16_e5m10 , adc::cp_f16_e8m7 ,
  adc::cp_c_f32 , adc::cp_c_f64 , adc::cp_c_f80 , adc::cp_c_f128 ,
  adc::cp_timespec , adc::cp_timeval , adc::cp_epoch , adc::cp_last
}
 field types for scientific data encode/decode with json. More...
 
enum  adc::key_type { adc::k_none , adc::k_section , adc::k_value }
 when expanding scalar_type, always update enum.ipp to match. More...
 
enum  adc::object_type { adc::co_list = cp_last , adc::co_map , adc::co_array , adc::co_scalar }
 classification of json-adjacent structure elements. This is not currently in use and may be retired soon. More...
 

Functions

const std::string adc::to_string (scalar_type st)
 get the string representation of a scalar_type value
 
const std::string adc::to_string (float)
 get string of float using to_chars.
 
const std::string adc::to_string (double)
 get string of double using to_chars.
 
const std::string adc::to_string (void *data, scalar_type cptype, size_t count)
 get string of array
 
scalar_type adc::scalar_type_from_name (const std::string &name)
 get the enum representation of a scalar_type string
 
int adc::test_enum_strings ()
 return non-zero if to_string and enum scalar_type are inconsisent.
 

Variables

version adc::enum_version ("1.0.0", {"none"})
 the version number of enum scalar_type and object_type