libdatadog 11.0.0.1.0-aarch64-linux → 13.1.0.1.0-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/libdatadog/version.rb +1 -1
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +4473 -593
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
 - data/vendor/libdatadog-13.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +1230 -0
 - data/vendor/{libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-13.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +531 -293
 - data/vendor/libdatadog-13.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +436 -0
 - data/vendor/{libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-13.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +10 -275
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +4473 -593
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
 - data/vendor/libdatadog-13.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +1230 -0
 - data/vendor/{libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-13.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +531 -293
 - data/vendor/libdatadog-13.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +436 -0
 - data/vendor/{libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-13.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +10 -275
 - data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
 - metadata +24 -22
 - data/vendor/libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -1229
 - data/vendor/libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -1229
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
 - /data/vendor/{libdatadog-11.0.0 → libdatadog-13.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
 
| 
         @@ -39,6 +39,11 @@ 
     | 
|
| 
       39 
39 
     | 
    
         
             
            #  define DDOG_CHECK_RETURN
         
     | 
| 
       40 
40 
     | 
    
         
             
            #endif
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
      
 42 
     | 
    
         
            +
            /**
         
     | 
| 
      
 43 
     | 
    
         
            +
             * Default value for the timeout field in milliseconds.
         
     | 
| 
      
 44 
     | 
    
         
            +
             */
         
     | 
| 
      
 45 
     | 
    
         
            +
            #define ddog_Endpoint_DEFAULT_TIMEOUT 3000
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
       42 
47 
     | 
    
         
             
            typedef struct ddog_Endpoint ddog_Endpoint;
         
     | 
| 
       43 
48 
     | 
    
         | 
| 
       44 
49 
     | 
    
         
             
            typedef struct ddog_Tag ddog_Tag;
         
     | 
| 
         @@ -68,7 +73,9 @@ typedef struct ddog_Error { 
     | 
|
| 
       68 
73 
     | 
    
         | 
| 
       69 
74 
     | 
    
         
             
            typedef struct ddog_Slice_CChar {
         
     | 
| 
       70 
75 
     | 
    
         
             
              /**
         
     | 
| 
       71 
     | 
    
         
            -
               *  
     | 
| 
      
 76 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 77 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 78 
     | 
    
         
            +
               * zero.
         
     | 
| 
       72 
79 
     | 
    
         
             
               */
         
     | 
| 
       73 
80 
     | 
    
         
             
              const char *ptr;
         
     | 
| 
       74 
81 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -99,288 +106,170 @@ typedef struct ddog_Option_Error { 
     | 
|
| 
       99 
106 
     | 
    
         | 
| 
       100 
107 
     | 
    
         
             
            typedef struct ddog_Option_Error ddog_MaybeError;
         
     | 
| 
       101 
108 
     | 
    
         | 
| 
       102 
     | 
    
         
            -
             
     | 
| 
       103 
     | 
    
         
            -
             * 
     | 
| 
       104 
     | 
    
         
            -
              
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
              /**
         
     | 
| 
       107 
     | 
    
         
            -
               * This is a String stuffed into the vec.
         
     | 
| 
       108 
     | 
    
         
            -
               */
         
     | 
| 
       109 
     | 
    
         
            -
              struct ddog_Vec_U8 message;
         
     | 
| 
       110 
     | 
    
         
            -
            } ddog_StringWrapper;
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
            /**
         
     | 
| 
       113 
     | 
    
         
            -
             * Holds the raw parts of a Rust Vec; it should only be created from Rust,
         
     | 
| 
       114 
     | 
    
         
            -
             * never from C.
         
     | 
| 
       115 
     | 
    
         
            -
             */
         
     | 
| 
       116 
     | 
    
         
            -
            typedef struct ddog_Vec_Tag {
         
     | 
| 
       117 
     | 
    
         
            -
              const struct ddog_Tag *ptr;
         
     | 
| 
       118 
     | 
    
         
            -
              uintptr_t len;
         
     | 
| 
       119 
     | 
    
         
            -
              uintptr_t capacity;
         
     | 
| 
       120 
     | 
    
         
            -
            } ddog_Vec_Tag;
         
     | 
| 
      
 109 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue {
         
     | 
| 
      
 110 
     | 
    
         
            +
              struct ddog_ArrayQueue *inner;
         
     | 
| 
      
 111 
     | 
    
         
            +
              void (*item_delete_fn)(void*);
         
     | 
| 
      
 112 
     | 
    
         
            +
            } ddog_ArrayQueue;
         
     | 
| 
       121 
113 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
            typedef enum  
     | 
| 
       123 
     | 
    
         
            -
               
     | 
| 
       124 
     | 
    
         
            -
               
     | 
| 
       125 
     | 
    
         
            -
            }  
     | 
| 
      
 114 
     | 
    
         
            +
            typedef enum ddog_ArrayQueue_NewResult_Tag {
         
     | 
| 
      
 115 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_NEW_RESULT_OK,
         
     | 
| 
      
 116 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_NEW_RESULT_ERR,
         
     | 
| 
      
 117 
     | 
    
         
            +
            } ddog_ArrayQueue_NewResult_Tag;
         
     | 
| 
       126 
118 
     | 
    
         | 
| 
       127 
     | 
    
         
            -
            typedef struct  
     | 
| 
       128 
     | 
    
         
            -
               
     | 
| 
      
 119 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue_NewResult {
         
     | 
| 
      
 120 
     | 
    
         
            +
              ddog_ArrayQueue_NewResult_Tag tag;
         
     | 
| 
       129 
121 
     | 
    
         
             
              union {
         
     | 
| 
      
 122 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 123 
     | 
    
         
            +
                  struct ddog_ArrayQueue *ok;
         
     | 
| 
      
 124 
     | 
    
         
            +
                };
         
     | 
| 
       130 
125 
     | 
    
         
             
                struct {
         
     | 
| 
       131 
126 
     | 
    
         
             
                  struct ddog_Error err;
         
     | 
| 
       132 
127 
     | 
    
         
             
                };
         
     | 
| 
       133 
128 
     | 
    
         
             
              };
         
     | 
| 
       134 
     | 
    
         
            -
            }  
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
            typedef struct ddog_Vec_Tag_ParseResult {
         
     | 
| 
       137 
     | 
    
         
            -
              struct ddog_Vec_Tag tags;
         
     | 
| 
       138 
     | 
    
         
            -
              struct ddog_Error *error_message;
         
     | 
| 
       139 
     | 
    
         
            -
            } ddog_Vec_Tag_ParseResult;
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
            typedef enum ddog_prof_DemangleOptions {
         
     | 
| 
       142 
     | 
    
         
            -
              DDOG_PROF_DEMANGLE_OPTIONS_COMPLETE,
         
     | 
| 
       143 
     | 
    
         
            -
              DDOG_PROF_DEMANGLE_OPTIONS_NAME_ONLY,
         
     | 
| 
       144 
     | 
    
         
            -
            } ddog_prof_DemangleOptions;
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
            typedef enum ddog_prof_NormalizedAddressTypes {
         
     | 
| 
       147 
     | 
    
         
            -
              DDOG_PROF_NORMALIZED_ADDRESS_TYPES_NONE = 0,
         
     | 
| 
       148 
     | 
    
         
            -
              DDOG_PROF_NORMALIZED_ADDRESS_TYPES_ELF,
         
     | 
| 
       149 
     | 
    
         
            -
            } ddog_prof_NormalizedAddressTypes;
         
     | 
| 
      
 129 
     | 
    
         
            +
            } ddog_ArrayQueue_NewResult;
         
     | 
| 
       150 
130 
     | 
    
         | 
| 
       151 
131 
     | 
    
         
             
            /**
         
     | 
| 
       152 
     | 
    
         
            -
             *  
     | 
| 
       153 
     | 
    
         
            -
             *  
     | 
| 
       154 
     | 
    
         
            -
             * is  
     | 
| 
       155 
     | 
    
         
            -
             *
         
     | 
| 
       156 
     | 
    
         
            -
             * In the future, we might also track wall-clock time of operations
         
     | 
| 
       157 
     | 
    
         
            -
             * (or some statistical sampling thereof) using the same enum.
         
     | 
| 
       158 
     | 
    
         
            -
             *
         
     | 
| 
       159 
     | 
    
         
            -
             * NOTE: This enum is known to be non-exhaustive.  Feel free to add new types
         
     | 
| 
       160 
     | 
    
         
            -
             *       as needed.
         
     | 
| 
       161 
     | 
    
         
            -
             */
         
     | 
| 
       162 
     | 
    
         
            -
            typedef enum ddog_prof_ProfilingOpTypes {
         
     | 
| 
       163 
     | 
    
         
            -
              DDOG_PROF_PROFILING_OP_TYPES_NOT_PROFILING = 0,
         
     | 
| 
       164 
     | 
    
         
            -
              DDOG_PROF_PROFILING_OP_TYPES_COLLECTING_SAMPLE,
         
     | 
| 
       165 
     | 
    
         
            -
              DDOG_PROF_PROFILING_OP_TYPES_UNWINDING,
         
     | 
| 
       166 
     | 
    
         
            -
              DDOG_PROF_PROFILING_OP_TYPES_SERIALIZING,
         
     | 
| 
       167 
     | 
    
         
            -
              /**
         
     | 
| 
       168 
     | 
    
         
            -
               * Dummy value to allow easier iteration
         
     | 
| 
       169 
     | 
    
         
            -
               */
         
     | 
| 
       170 
     | 
    
         
            -
              DDOG_PROF_PROFILING_OP_TYPES_SIZE,
         
     | 
| 
       171 
     | 
    
         
            -
            } ddog_prof_ProfilingOpTypes;
         
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
            /**
         
     | 
| 
       174 
     | 
    
         
            -
             * Stacktrace collection occurs in the context of a crashing process.
         
     | 
| 
       175 
     | 
    
         
            -
             * If the stack is sufficiently corruputed, it is possible (but unlikely),
         
     | 
| 
       176 
     | 
    
         
            -
             * for stack trace collection itself to crash.
         
     | 
| 
       177 
     | 
    
         
            -
             * We recommend fully enabling stacktrace collection, but having an environment
         
     | 
| 
       178 
     | 
    
         
            -
             * variable to allow downgrading the collector.
         
     | 
| 
      
 132 
     | 
    
         
            +
             * Data structure for the result of the push() and force_push() functions.
         
     | 
| 
      
 133 
     | 
    
         
            +
             * force_push() replaces the oldest element if the queue is full, while push() returns the given
         
     | 
| 
      
 134 
     | 
    
         
            +
             * value if the queue is full. For push(), it's redundant to return the value since the caller
         
     | 
| 
      
 135 
     | 
    
         
            +
             * already has it, but it's returned for consistency with crossbeam API and with force_push().
         
     | 
| 
       179 
136 
     | 
    
         
             
             */
         
     | 
| 
       180 
     | 
    
         
            -
            typedef enum  
     | 
| 
       181 
     | 
    
         
            -
               
     | 
| 
       182 
     | 
    
         
            -
             
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
             
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
             
     | 
| 
       187 
     | 
    
         
            -
               
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
       190 
     | 
    
         
            -
             
     | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
     | 
    
         
            -
             
     | 
| 
      
 137 
     | 
    
         
            +
            typedef enum ddog_ArrayQueue_PushResult_Tag {
         
     | 
| 
      
 138 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_PUSH_RESULT_OK,
         
     | 
| 
      
 139 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_PUSH_RESULT_FULL,
         
     | 
| 
      
 140 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_PUSH_RESULT_ERR,
         
     | 
| 
      
 141 
     | 
    
         
            +
            } ddog_ArrayQueue_PushResult_Tag;
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue_PushResult {
         
     | 
| 
      
 144 
     | 
    
         
            +
              ddog_ArrayQueue_PushResult_Tag tag;
         
     | 
| 
      
 145 
     | 
    
         
            +
              union {
         
     | 
| 
      
 146 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 147 
     | 
    
         
            +
                  void *full;
         
     | 
| 
      
 148 
     | 
    
         
            +
                };
         
     | 
| 
      
 149 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 150 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 151 
     | 
    
         
            +
                };
         
     | 
| 
      
 152 
     | 
    
         
            +
              };
         
     | 
| 
      
 153 
     | 
    
         
            +
            } ddog_ArrayQueue_PushResult;
         
     | 
| 
       193 
154 
     | 
    
         | 
| 
       194 
     | 
    
         
            -
            typedef  
     | 
| 
      
 155 
     | 
    
         
            +
            typedef enum ddog_ArrayQueue_PopResult_Tag {
         
     | 
| 
      
 156 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_POP_RESULT_OK,
         
     | 
| 
      
 157 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_POP_RESULT_EMPTY,
         
     | 
| 
      
 158 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_POP_RESULT_ERR,
         
     | 
| 
      
 159 
     | 
    
         
            +
            } ddog_ArrayQueue_PopResult_Tag;
         
     | 
| 
       195 
160 
     | 
    
         | 
| 
       196 
     | 
    
         
            -
            typedef struct  
     | 
| 
      
 161 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue_PopResult {
         
     | 
| 
      
 162 
     | 
    
         
            +
              ddog_ArrayQueue_PopResult_Tag tag;
         
     | 
| 
      
 163 
     | 
    
         
            +
              union {
         
     | 
| 
      
 164 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 165 
     | 
    
         
            +
                  void *ok;
         
     | 
| 
      
 166 
     | 
    
         
            +
                };
         
     | 
| 
      
 167 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 168 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 169 
     | 
    
         
            +
                };
         
     | 
| 
      
 170 
     | 
    
         
            +
              };
         
     | 
| 
      
 171 
     | 
    
         
            +
            } ddog_ArrayQueue_PopResult;
         
     | 
| 
       197 
172 
     | 
    
         | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
              
     | 
| 
       202 
     | 
    
         
            -
            typedef enum ddog_prof_CrashtrackerResult_Tag {
         
     | 
| 
       203 
     | 
    
         
            -
              DDOG_PROF_CRASHTRACKER_RESULT_OK,
         
     | 
| 
       204 
     | 
    
         
            -
              DDOG_PROF_CRASHTRACKER_RESULT_ERR,
         
     | 
| 
       205 
     | 
    
         
            -
            } ddog_prof_CrashtrackerResult_Tag;
         
     | 
| 
      
 173 
     | 
    
         
            +
            typedef enum ddog_ArrayQueue_BoolResult_Tag {
         
     | 
| 
      
 174 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_BOOL_RESULT_OK,
         
     | 
| 
      
 175 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_BOOL_RESULT_ERR,
         
     | 
| 
      
 176 
     | 
    
         
            +
            } ddog_ArrayQueue_BoolResult_Tag;
         
     | 
| 
       206 
177 
     | 
    
         | 
| 
       207 
     | 
    
         
            -
            typedef struct  
     | 
| 
       208 
     | 
    
         
            -
               
     | 
| 
      
 178 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue_BoolResult {
         
     | 
| 
      
 179 
     | 
    
         
            +
              ddog_ArrayQueue_BoolResult_Tag tag;
         
     | 
| 
       209 
180 
     | 
    
         
             
              union {
         
     | 
| 
       210 
181 
     | 
    
         
             
                struct {
         
     | 
| 
       211 
     | 
    
         
            -
                  /**
         
     | 
| 
       212 
     | 
    
         
            -
                   * Do not use the value of Ok. This value only exists to overcome
         
     | 
| 
       213 
     | 
    
         
            -
                   * Rust -> C code generation.
         
     | 
| 
       214 
     | 
    
         
            -
                   */
         
     | 
| 
       215 
182 
     | 
    
         
             
                  bool ok;
         
     | 
| 
       216 
183 
     | 
    
         
             
                };
         
     | 
| 
       217 
184 
     | 
    
         
             
                struct {
         
     | 
| 
       218 
185 
     | 
    
         
             
                  struct ddog_Error err;
         
     | 
| 
       219 
186 
     | 
    
         
             
                };
         
     | 
| 
       220 
187 
     | 
    
         
             
              };
         
     | 
| 
       221 
     | 
    
         
            -
            }  
     | 
| 
      
 188 
     | 
    
         
            +
            } ddog_ArrayQueue_BoolResult;
         
     | 
| 
       222 
189 
     | 
    
         | 
| 
       223 
     | 
    
         
            -
            typedef  
     | 
| 
       224 
     | 
    
         
            -
               
     | 
| 
       225 
     | 
    
         
            -
             
     | 
| 
       226 
     | 
    
         
            -
             
     | 
| 
       227 
     | 
    
         
            -
              const ddog_CharSlice *ptr;
         
     | 
| 
       228 
     | 
    
         
            -
              /**
         
     | 
| 
       229 
     | 
    
         
            -
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
       230 
     | 
    
         
            -
               * than or equal to [isize::MAX].
         
     | 
| 
       231 
     | 
    
         
            -
               */
         
     | 
| 
       232 
     | 
    
         
            -
              uintptr_t len;
         
     | 
| 
       233 
     | 
    
         
            -
            } ddog_prof_Slice_CharSlice;
         
     | 
| 
      
 190 
     | 
    
         
            +
            typedef enum ddog_ArrayQueue_UsizeResult_Tag {
         
     | 
| 
      
 191 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_USIZE_RESULT_OK,
         
     | 
| 
      
 192 
     | 
    
         
            +
              DDOG_ARRAY_QUEUE_USIZE_RESULT_ERR,
         
     | 
| 
      
 193 
     | 
    
         
            +
            } ddog_ArrayQueue_UsizeResult_Tag;
         
     | 
| 
       234 
194 
     | 
    
         | 
| 
       235 
     | 
    
         
            -
            typedef  
     | 
| 
       236 
     | 
    
         
            -
               
     | 
| 
       237 
     | 
    
         
            -
              DDOG_PROF_ENDPOINT_AGENTLESS,
         
     | 
| 
       238 
     | 
    
         
            -
              DDOG_PROF_ENDPOINT_FILE,
         
     | 
| 
       239 
     | 
    
         
            -
            } ddog_prof_Endpoint_Tag;
         
     | 
| 
       240 
     | 
    
         
            -
             
     | 
| 
       241 
     | 
    
         
            -
            typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
         
     | 
| 
       242 
     | 
    
         
            -
              ddog_CharSlice _0;
         
     | 
| 
       243 
     | 
    
         
            -
              ddog_CharSlice _1;
         
     | 
| 
       244 
     | 
    
         
            -
            } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
         
     | 
| 
       245 
     | 
    
         
            -
             
     | 
| 
       246 
     | 
    
         
            -
            typedef struct ddog_prof_Endpoint {
         
     | 
| 
       247 
     | 
    
         
            -
              ddog_prof_Endpoint_Tag tag;
         
     | 
| 
      
 195 
     | 
    
         
            +
            typedef struct ddog_ArrayQueue_UsizeResult {
         
     | 
| 
      
 196 
     | 
    
         
            +
              ddog_ArrayQueue_UsizeResult_Tag tag;
         
     | 
| 
       248 
197 
     | 
    
         
             
              union {
         
     | 
| 
       249 
198 
     | 
    
         
             
                struct {
         
     | 
| 
       250 
     | 
    
         
            -
                   
     | 
| 
      
 199 
     | 
    
         
            +
                  uintptr_t ok;
         
     | 
| 
       251 
200 
     | 
    
         
             
                };
         
     | 
| 
       252 
     | 
    
         
            -
                ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
         
     | 
| 
       253 
201 
     | 
    
         
             
                struct {
         
     | 
| 
       254 
     | 
    
         
            -
                   
     | 
| 
      
 202 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
       255 
203 
     | 
    
         
             
                };
         
     | 
| 
       256 
204 
     | 
    
         
             
              };
         
     | 
| 
       257 
     | 
    
         
            -
            }  
     | 
| 
      
 205 
     | 
    
         
            +
            } ddog_ArrayQueue_UsizeResult;
         
     | 
| 
       258 
206 
     | 
    
         | 
| 
       259 
     | 
    
         
            -
            typedef  
     | 
| 
       260 
     | 
    
         
            -
               
     | 
| 
       261 
     | 
    
         
            -
               
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
               * The endpoint to send the crash report to (can be a file://)
         
     | 
| 
       264 
     | 
    
         
            -
               *
         
     | 
| 
       265 
     | 
    
         
            -
               * If ProfilingEndpoint is left to a zero value (enum value for Agent + empty charslice),
         
     | 
| 
       266 
     | 
    
         
            -
               * the crashtracker will infer the agent host from env variables.
         
     | 
| 
       267 
     | 
    
         
            -
               */
         
     | 
| 
       268 
     | 
    
         
            -
              struct ddog_prof_Endpoint endpoint;
         
     | 
| 
       269 
     | 
    
         
            -
              enum ddog_prof_StacktraceCollection resolve_frames;
         
     | 
| 
       270 
     | 
    
         
            -
              uint64_t timeout_secs;
         
     | 
| 
       271 
     | 
    
         
            -
              bool wait_for_receiver;
         
     | 
| 
       272 
     | 
    
         
            -
            } ddog_prof_CrashtrackerConfiguration;
         
     | 
| 
       273 
     | 
    
         
            -
             
     | 
| 
       274 
     | 
    
         
            -
            typedef struct ddog_prof_EnvVar {
         
     | 
| 
       275 
     | 
    
         
            -
              ddog_CharSlice key;
         
     | 
| 
       276 
     | 
    
         
            -
              ddog_CharSlice val;
         
     | 
| 
       277 
     | 
    
         
            -
            } ddog_prof_EnvVar;
         
     | 
| 
      
 207 
     | 
    
         
            +
            typedef enum ddog_Option_U32_Tag {
         
     | 
| 
      
 208 
     | 
    
         
            +
              DDOG_OPTION_U32_SOME_U32,
         
     | 
| 
      
 209 
     | 
    
         
            +
              DDOG_OPTION_U32_NONE_U32,
         
     | 
| 
      
 210 
     | 
    
         
            +
            } ddog_Option_U32_Tag;
         
     | 
| 
       278 
211 
     | 
    
         | 
| 
       279 
     | 
    
         
            -
            typedef struct  
     | 
| 
       280 
     | 
    
         
            -
               
     | 
| 
       281 
     | 
    
         
            -
             
     | 
| 
       282 
     | 
    
         
            -
             
     | 
| 
       283 
     | 
    
         
            -
             
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
     | 
    
         
            -
             
     | 
| 
       286 
     | 
    
         
            -
             
     | 
| 
       287 
     | 
    
         
            -
               */
         
     | 
| 
       288 
     | 
    
         
            -
              uintptr_t len;
         
     | 
| 
       289 
     | 
    
         
            -
            } ddog_prof_Slice_EnvVar;
         
     | 
| 
       290 
     | 
    
         
            -
             
     | 
| 
       291 
     | 
    
         
            -
            typedef struct ddog_prof_CrashtrackerReceiverConfig {
         
     | 
| 
       292 
     | 
    
         
            -
              struct ddog_prof_Slice_CharSlice args;
         
     | 
| 
       293 
     | 
    
         
            -
              struct ddog_prof_Slice_EnvVar env;
         
     | 
| 
       294 
     | 
    
         
            -
              ddog_CharSlice path_to_receiver_binary;
         
     | 
| 
       295 
     | 
    
         
            -
              /**
         
     | 
| 
       296 
     | 
    
         
            -
               * Optional filename to forward stderr to (useful for logging/debugging)
         
     | 
| 
       297 
     | 
    
         
            -
               */
         
     | 
| 
       298 
     | 
    
         
            -
              ddog_CharSlice optional_stderr_filename;
         
     | 
| 
       299 
     | 
    
         
            -
              /**
         
     | 
| 
       300 
     | 
    
         
            -
               * Optional filename to forward stdout to (useful for logging/debugging)
         
     | 
| 
       301 
     | 
    
         
            -
               */
         
     | 
| 
       302 
     | 
    
         
            -
              ddog_CharSlice optional_stdout_filename;
         
     | 
| 
       303 
     | 
    
         
            -
            } ddog_prof_CrashtrackerReceiverConfig;
         
     | 
| 
      
 212 
     | 
    
         
            +
            typedef struct ddog_Option_U32 {
         
     | 
| 
      
 213 
     | 
    
         
            +
              ddog_Option_U32_Tag tag;
         
     | 
| 
      
 214 
     | 
    
         
            +
              union {
         
     | 
| 
      
 215 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 216 
     | 
    
         
            +
                  uint32_t some;
         
     | 
| 
      
 217 
     | 
    
         
            +
                };
         
     | 
| 
      
 218 
     | 
    
         
            +
              };
         
     | 
| 
      
 219 
     | 
    
         
            +
            } ddog_Option_U32;
         
     | 
| 
       304 
220 
     | 
    
         | 
| 
       305 
     | 
    
         
            -
             
     | 
| 
       306 
     | 
    
         
            -
             
     | 
| 
       307 
     | 
    
         
            -
             
     | 
| 
       308 
     | 
    
         
            -
             
     | 
| 
      
 221 
     | 
    
         
            +
            /**
         
     | 
| 
      
 222 
     | 
    
         
            +
             * A wrapper for returning owned strings from FFI
         
     | 
| 
      
 223 
     | 
    
         
            +
             */
         
     | 
| 
      
 224 
     | 
    
         
            +
            typedef struct ddog_StringWrapper {
         
     | 
| 
       309 
225 
     | 
    
         
             
              /**
         
     | 
| 
       310 
     | 
    
         
            -
               *  
     | 
| 
      
 226 
     | 
    
         
            +
               * This is a String stuffed into the vec.
         
     | 
| 
       311 
227 
     | 
    
         
             
               */
         
     | 
| 
       312 
     | 
    
         
            -
               
     | 
| 
       313 
     | 
    
         
            -
            }  
     | 
| 
      
 228 
     | 
    
         
            +
              struct ddog_Vec_U8 message;
         
     | 
| 
      
 229 
     | 
    
         
            +
            } ddog_StringWrapper;
         
     | 
| 
       314 
230 
     | 
    
         | 
| 
       315 
231 
     | 
    
         
             
            /**
         
     | 
| 
       316 
     | 
    
         
            -
             *  
     | 
| 
       317 
     | 
    
         
            -
             *  
     | 
| 
      
 232 
     | 
    
         
            +
             * Holds the raw parts of a Rust Vec; it should only be created from Rust,
         
     | 
| 
      
 233 
     | 
    
         
            +
             * never from C.
         
     | 
| 
       318 
234 
     | 
    
         
             
             */
         
     | 
| 
       319 
     | 
    
         
            -
            typedef struct  
     | 
| 
       320 
     | 
    
         
            -
              struct  
     | 
| 
       321 
     | 
    
         
            -
             
     | 
| 
      
 235 
     | 
    
         
            +
            typedef struct ddog_Vec_Tag {
         
     | 
| 
      
 236 
     | 
    
         
            +
              const struct ddog_Tag *ptr;
         
     | 
| 
      
 237 
     | 
    
         
            +
              uintptr_t len;
         
     | 
| 
      
 238 
     | 
    
         
            +
              uintptr_t capacity;
         
     | 
| 
      
 239 
     | 
    
         
            +
            } ddog_Vec_Tag;
         
     | 
| 
       322 
240 
     | 
    
         | 
| 
       323 
     | 
    
         
            -
             
     | 
| 
       324 
     | 
    
         
            -
             
     | 
| 
       325 
     | 
    
         
            -
             
     | 
| 
       326 
     | 
    
         
            -
             
     | 
| 
       327 
     | 
    
         
            -
              DDOG_PROF_CRASH_INFO_NEW_RESULT_OK,
         
     | 
| 
       328 
     | 
    
         
            -
              DDOG_PROF_CRASH_INFO_NEW_RESULT_ERR,
         
     | 
| 
       329 
     | 
    
         
            -
            } ddog_prof_CrashInfoNewResult_Tag;
         
     | 
| 
      
 241 
     | 
    
         
            +
            typedef enum ddog_Vec_Tag_PushResult_Tag {
         
     | 
| 
      
 242 
     | 
    
         
            +
              DDOG_VEC_TAG_PUSH_RESULT_OK,
         
     | 
| 
      
 243 
     | 
    
         
            +
              DDOG_VEC_TAG_PUSH_RESULT_ERR,
         
     | 
| 
      
 244 
     | 
    
         
            +
            } ddog_Vec_Tag_PushResult_Tag;
         
     | 
| 
       330 
245 
     | 
    
         | 
| 
       331 
     | 
    
         
            -
            typedef struct  
     | 
| 
       332 
     | 
    
         
            -
               
     | 
| 
      
 246 
     | 
    
         
            +
            typedef struct ddog_Vec_Tag_PushResult {
         
     | 
| 
      
 247 
     | 
    
         
            +
              ddog_Vec_Tag_PushResult_Tag tag;
         
     | 
| 
       333 
248 
     | 
    
         
             
              union {
         
     | 
| 
       334 
     | 
    
         
            -
                struct {
         
     | 
| 
       335 
     | 
    
         
            -
                  struct ddog_prof_CrashInfo ok;
         
     | 
| 
       336 
     | 
    
         
            -
                };
         
     | 
| 
       337 
249 
     | 
    
         
             
                struct {
         
     | 
| 
       338 
250 
     | 
    
         
             
                  struct ddog_Error err;
         
     | 
| 
       339 
251 
     | 
    
         
             
                };
         
     | 
| 
       340 
252 
     | 
    
         
             
              };
         
     | 
| 
       341 
     | 
    
         
            -
            }  
     | 
| 
      
 253 
     | 
    
         
            +
            } ddog_Vec_Tag_PushResult;
         
     | 
| 
       342 
254 
     | 
    
         | 
| 
       343 
     | 
    
         
            -
            typedef struct  
     | 
| 
       344 
     | 
    
         
            -
               
     | 
| 
       345 
     | 
    
         
            -
               
     | 
| 
       346 
     | 
    
         
            -
            }  
     | 
| 
      
 255 
     | 
    
         
            +
            typedef struct ddog_Vec_Tag_ParseResult {
         
     | 
| 
      
 256 
     | 
    
         
            +
              struct ddog_Vec_Tag tags;
         
     | 
| 
      
 257 
     | 
    
         
            +
              struct ddog_Error *error_message;
         
     | 
| 
      
 258 
     | 
    
         
            +
            } ddog_Vec_Tag_ParseResult;
         
     | 
| 
       347 
259 
     | 
    
         | 
| 
       348 
     | 
    
         
            -
            typedef  
     | 
| 
       349 
     | 
    
         
            -
              DDOG_PROF_OPTION_U32_SOME_U32,
         
     | 
| 
       350 
     | 
    
         
            -
              DDOG_PROF_OPTION_U32_NONE_U32,
         
     | 
| 
       351 
     | 
    
         
            -
            } ddog_prof_Option_U32_Tag;
         
     | 
| 
      
 260 
     | 
    
         
            +
            typedef struct ddog_CancellationToken ddog_CancellationToken;
         
     | 
| 
       352 
261 
     | 
    
         | 
| 
       353 
     | 
    
         
            -
            typedef struct  
     | 
| 
       354 
     | 
    
         
            -
              ddog_prof_Option_U32_Tag tag;
         
     | 
| 
       355 
     | 
    
         
            -
              union {
         
     | 
| 
       356 
     | 
    
         
            -
                struct {
         
     | 
| 
       357 
     | 
    
         
            -
                  uint32_t some;
         
     | 
| 
       358 
     | 
    
         
            -
                };
         
     | 
| 
       359 
     | 
    
         
            -
              };
         
     | 
| 
       360 
     | 
    
         
            -
            } ddog_prof_Option_U32;
         
     | 
| 
      
 262 
     | 
    
         
            +
            typedef struct ddog_prof_Exporter ddog_prof_Exporter;
         
     | 
| 
       361 
263 
     | 
    
         | 
| 
       362 
     | 
    
         
            -
            typedef struct  
     | 
| 
       363 
     | 
    
         
            -
              struct ddog_prof_Option_U32 colno;
         
     | 
| 
       364 
     | 
    
         
            -
              ddog_CharSlice filename;
         
     | 
| 
       365 
     | 
    
         
            -
              struct ddog_prof_Option_U32 lineno;
         
     | 
| 
       366 
     | 
    
         
            -
              ddog_CharSlice name;
         
     | 
| 
       367 
     | 
    
         
            -
            } ddog_prof_StackFrameNames;
         
     | 
| 
      
 264 
     | 
    
         
            +
            typedef struct ddog_prof_ProfiledEndpointsStats ddog_prof_ProfiledEndpointsStats;
         
     | 
| 
       368 
265 
     | 
    
         | 
| 
       369 
     | 
    
         
            -
            typedef struct  
     | 
| 
       370 
     | 
    
         
            -
              /**
         
     | 
| 
       371 
     | 
    
         
            -
               * Must be non-null and suitably aligned for the underlying type.
         
     | 
| 
       372 
     | 
    
         
            -
               */
         
     | 
| 
       373 
     | 
    
         
            -
              const struct ddog_prof_StackFrameNames *ptr;
         
     | 
| 
       374 
     | 
    
         
            -
              /**
         
     | 
| 
       375 
     | 
    
         
            -
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
       376 
     | 
    
         
            -
               * than or equal to [isize::MAX].
         
     | 
| 
       377 
     | 
    
         
            -
               */
         
     | 
| 
       378 
     | 
    
         
            -
              uintptr_t len;
         
     | 
| 
       379 
     | 
    
         
            -
            } ddog_prof_Slice_StackFrameNames;
         
     | 
| 
      
 266 
     | 
    
         
            +
            typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
         
     | 
| 
       380 
267 
     | 
    
         | 
| 
       381 
268 
     | 
    
         
             
            typedef struct ddog_Slice_U8 {
         
     | 
| 
       382 
269 
     | 
    
         
             
              /**
         
     | 
| 
       383 
     | 
    
         
            -
               *  
     | 
| 
      
 270 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 271 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 272 
     | 
    
         
            +
               * zero.
         
     | 
| 
       384 
273 
     | 
    
         
             
               */
         
     | 
| 
       385 
274 
     | 
    
         
             
              const uint8_t *ptr;
         
     | 
| 
       386 
275 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -395,81 +284,48 @@ typedef struct ddog_Slice_U8 { 
     | 
|
| 
       395 
284 
     | 
    
         
             
             */
         
     | 
| 
       396 
285 
     | 
    
         
             
            typedef struct ddog_Slice_U8 ddog_ByteSlice;
         
     | 
| 
       397 
286 
     | 
    
         | 
| 
       398 
     | 
    
         
            -
            typedef struct  
     | 
| 
       399 
     | 
    
         
            -
               
     | 
| 
       400 
     | 
    
         
            -
              ddog_ByteSlice  
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
              enum ddog_prof_NormalizedAddressTypes typ;
         
     | 
| 
       403 
     | 
    
         
            -
            } ddog_prof_NormalizedAddress;
         
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
            typedef struct ddog_prof_StackFrame {
         
     | 
| 
       406 
     | 
    
         
            -
              ddog_CharSlice build_id;
         
     | 
| 
       407 
     | 
    
         
            -
              uintptr_t ip;
         
     | 
| 
       408 
     | 
    
         
            -
              uintptr_t module_base_address;
         
     | 
| 
       409 
     | 
    
         
            -
              struct ddog_prof_Slice_StackFrameNames names;
         
     | 
| 
       410 
     | 
    
         
            -
              struct ddog_prof_NormalizedAddress normalized_ip;
         
     | 
| 
       411 
     | 
    
         
            -
              uintptr_t sp;
         
     | 
| 
       412 
     | 
    
         
            -
              uintptr_t symbol_address;
         
     | 
| 
       413 
     | 
    
         
            -
            } ddog_prof_StackFrame;
         
     | 
| 
      
 287 
     | 
    
         
            +
            typedef struct ddog_prof_Exporter_File {
         
     | 
| 
      
 288 
     | 
    
         
            +
              ddog_CharSlice name;
         
     | 
| 
      
 289 
     | 
    
         
            +
              ddog_ByteSlice file;
         
     | 
| 
      
 290 
     | 
    
         
            +
            } ddog_prof_Exporter_File;
         
     | 
| 
       414 
291 
     | 
    
         | 
| 
       415 
     | 
    
         
            -
            typedef struct  
     | 
| 
      
 292 
     | 
    
         
            +
            typedef struct ddog_prof_Exporter_Slice_File {
         
     | 
| 
       416 
293 
     | 
    
         
             
              /**
         
     | 
| 
       417 
     | 
    
         
            -
               *  
     | 
| 
      
 294 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 295 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 296 
     | 
    
         
            +
               * zero.
         
     | 
| 
       418 
297 
     | 
    
         
             
               */
         
     | 
| 
       419 
     | 
    
         
            -
              const struct  
     | 
| 
      
 298 
     | 
    
         
            +
              const struct ddog_prof_Exporter_File *ptr;
         
     | 
| 
       420 
299 
     | 
    
         
             
              /**
         
     | 
| 
       421 
300 
     | 
    
         
             
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
       422 
301 
     | 
    
         
             
               * than or equal to [isize::MAX].
         
     | 
| 
       423 
302 
     | 
    
         
             
               */
         
     | 
| 
       424 
303 
     | 
    
         
             
              uintptr_t len;
         
     | 
| 
       425 
     | 
    
         
            -
            }  
     | 
| 
      
 304 
     | 
    
         
            +
            } ddog_prof_Exporter_Slice_File;
         
     | 
| 
       426 
305 
     | 
    
         | 
| 
       427 
     | 
    
         
            -
             
     | 
| 
       428 
     | 
    
         
            -
             
     | 
| 
       429 
     | 
    
         
            -
             
     | 
| 
       430 
     | 
    
         
            -
             
     | 
| 
       431 
     | 
    
         
            -
             
     | 
| 
       432 
     | 
    
         
            -
               * This is a String stuffed into the vec.
         
     | 
| 
       433 
     | 
    
         
            -
               */
         
     | 
| 
       434 
     | 
    
         
            -
              struct ddog_Vec_U8 message;
         
     | 
| 
       435 
     | 
    
         
            -
            } ddog_prof_StringWrapper;
         
     | 
| 
      
 306 
     | 
    
         
            +
            typedef enum ddog_prof_Endpoint_Tag {
         
     | 
| 
      
 307 
     | 
    
         
            +
              DDOG_PROF_ENDPOINT_AGENT,
         
     | 
| 
      
 308 
     | 
    
         
            +
              DDOG_PROF_ENDPOINT_AGENTLESS,
         
     | 
| 
      
 309 
     | 
    
         
            +
              DDOG_PROF_ENDPOINT_FILE,
         
     | 
| 
      
 310 
     | 
    
         
            +
            } ddog_prof_Endpoint_Tag;
         
     | 
| 
       436 
311 
     | 
    
         | 
| 
       437 
     | 
    
         
            -
             
     | 
| 
       438 
     | 
    
         
            -
              
     | 
| 
       439 
     | 
    
         
            -
              
     | 
| 
       440 
     | 
    
         
            -
             
     | 
| 
       441 
     | 
    
         
            -
              DDOG_PROF_STRING_WRAPPER_RESULT_OK,
         
     | 
| 
       442 
     | 
    
         
            -
              DDOG_PROF_STRING_WRAPPER_RESULT_ERR,
         
     | 
| 
       443 
     | 
    
         
            -
            } ddog_prof_StringWrapperResult_Tag;
         
     | 
| 
      
 312 
     | 
    
         
            +
            typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
         
     | 
| 
      
 313 
     | 
    
         
            +
              ddog_CharSlice _0;
         
     | 
| 
      
 314 
     | 
    
         
            +
              ddog_CharSlice _1;
         
     | 
| 
      
 315 
     | 
    
         
            +
            } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
         
     | 
| 
       444 
316 
     | 
    
         | 
| 
       445 
     | 
    
         
            -
            typedef struct  
     | 
| 
       446 
     | 
    
         
            -
               
     | 
| 
      
 317 
     | 
    
         
            +
            typedef struct ddog_prof_Endpoint {
         
     | 
| 
      
 318 
     | 
    
         
            +
              ddog_prof_Endpoint_Tag tag;
         
     | 
| 
       447 
319 
     | 
    
         
             
              union {
         
     | 
| 
       448 
320 
     | 
    
         
             
                struct {
         
     | 
| 
       449 
     | 
    
         
            -
                   
     | 
| 
      
 321 
     | 
    
         
            +
                  ddog_CharSlice agent;
         
     | 
| 
       450 
322 
     | 
    
         
             
                };
         
     | 
| 
      
 323 
     | 
    
         
            +
                ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
         
     | 
| 
       451 
324 
     | 
    
         
             
                struct {
         
     | 
| 
       452 
     | 
    
         
            -
                   
     | 
| 
      
 325 
     | 
    
         
            +
                  ddog_CharSlice file;
         
     | 
| 
       453 
326 
     | 
    
         
             
                };
         
     | 
| 
       454 
327 
     | 
    
         
             
              };
         
     | 
| 
       455 
     | 
    
         
            -
            }  
     | 
| 
       456 
     | 
    
         
            -
             
     | 
| 
       457 
     | 
    
         
            -
            typedef struct ddog_prof_Exporter_File {
         
     | 
| 
       458 
     | 
    
         
            -
              ddog_CharSlice name;
         
     | 
| 
       459 
     | 
    
         
            -
              ddog_ByteSlice file;
         
     | 
| 
       460 
     | 
    
         
            -
            } ddog_prof_Exporter_File;
         
     | 
| 
       461 
     | 
    
         
            -
             
     | 
| 
       462 
     | 
    
         
            -
            typedef struct ddog_prof_Exporter_Slice_File {
         
     | 
| 
       463 
     | 
    
         
            -
              /**
         
     | 
| 
       464 
     | 
    
         
            -
               * Must be non-null and suitably aligned for the underlying type.
         
     | 
| 
       465 
     | 
    
         
            -
               */
         
     | 
| 
       466 
     | 
    
         
            -
              const struct ddog_prof_Exporter_File *ptr;
         
     | 
| 
       467 
     | 
    
         
            -
              /**
         
     | 
| 
       468 
     | 
    
         
            -
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
       469 
     | 
    
         
            -
               * than or equal to [isize::MAX].
         
     | 
| 
       470 
     | 
    
         
            -
               */
         
     | 
| 
       471 
     | 
    
         
            -
              uintptr_t len;
         
     | 
| 
       472 
     | 
    
         
            -
            } ddog_prof_Exporter_Slice_File;
         
     | 
| 
      
 328 
     | 
    
         
            +
            } ddog_prof_Endpoint;
         
     | 
| 
       473 
329 
     | 
    
         | 
| 
       474 
330 
     | 
    
         
             
            typedef enum ddog_prof_Exporter_NewResult_Tag {
         
     | 
| 
       475 
331 
     | 
    
         
             
              DDOG_PROF_EXPORTER_NEW_RESULT_OK,
         
     | 
| 
         @@ -488,6 +344,22 @@ typedef struct ddog_prof_Exporter_NewResult { 
     | 
|
| 
       488 
344 
     | 
    
         
             
              };
         
     | 
| 
       489 
345 
     | 
    
         
             
            } ddog_prof_Exporter_NewResult;
         
     | 
| 
       490 
346 
     | 
    
         | 
| 
      
 347 
     | 
    
         
            +
            typedef enum ddog_prof_Option_Error_Tag {
         
     | 
| 
      
 348 
     | 
    
         
            +
              DDOG_PROF_OPTION_ERROR_SOME_ERROR,
         
     | 
| 
      
 349 
     | 
    
         
            +
              DDOG_PROF_OPTION_ERROR_NONE_ERROR,
         
     | 
| 
      
 350 
     | 
    
         
            +
            } ddog_prof_Option_Error_Tag;
         
     | 
| 
      
 351 
     | 
    
         
            +
             
     | 
| 
      
 352 
     | 
    
         
            +
            typedef struct ddog_prof_Option_Error {
         
     | 
| 
      
 353 
     | 
    
         
            +
              ddog_prof_Option_Error_Tag tag;
         
     | 
| 
      
 354 
     | 
    
         
            +
              union {
         
     | 
| 
      
 355 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 356 
     | 
    
         
            +
                  struct ddog_Error some;
         
     | 
| 
      
 357 
     | 
    
         
            +
                };
         
     | 
| 
      
 358 
     | 
    
         
            +
              };
         
     | 
| 
      
 359 
     | 
    
         
            +
            } ddog_prof_Option_Error;
         
     | 
| 
      
 360 
     | 
    
         
            +
             
     | 
| 
      
 361 
     | 
    
         
            +
            typedef struct ddog_prof_Option_Error ddog_prof_MaybeError;
         
     | 
| 
      
 362 
     | 
    
         
            +
             
     | 
| 
       491 
363 
     | 
    
         
             
            typedef enum ddog_prof_Exporter_Request_BuildResult_Tag {
         
     | 
| 
       492 
364 
     | 
    
         
             
              DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_OK,
         
     | 
| 
       493 
365 
     | 
    
         
             
              DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_ERR,
         
     | 
| 
         @@ -569,7 +441,9 @@ typedef struct ddog_prof_ValueType { 
     | 
|
| 
       569 
441 
     | 
    
         | 
| 
       570 
442 
     | 
    
         
             
            typedef struct ddog_prof_Slice_ValueType {
         
     | 
| 
       571 
443 
     | 
    
         
             
              /**
         
     | 
| 
       572 
     | 
    
         
            -
               *  
     | 
| 
      
 444 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 445 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 446 
     | 
    
         
            +
               * zero.
         
     | 
| 
       573 
447 
     | 
    
         
             
               */
         
     | 
| 
       574 
448 
     | 
    
         
             
              const struct ddog_prof_ValueType *ptr;
         
     | 
| 
       575 
449 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -675,7 +549,9 @@ typedef struct ddog_prof_Location { 
     | 
|
| 
       675 
549 
     | 
    
         | 
| 
       676 
550 
     | 
    
         
             
            typedef struct ddog_prof_Slice_Location {
         
     | 
| 
       677 
551 
     | 
    
         
             
              /**
         
     | 
| 
       678 
     | 
    
         
            -
               *  
     | 
| 
      
 552 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 553 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 554 
     | 
    
         
            +
               * zero.
         
     | 
| 
       679 
555 
     | 
    
         
             
               */
         
     | 
| 
       680 
556 
     | 
    
         
             
              const struct ddog_prof_Location *ptr;
         
     | 
| 
       681 
557 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -687,7 +563,9 @@ typedef struct ddog_prof_Slice_Location { 
     | 
|
| 
       687 
563 
     | 
    
         | 
| 
       688 
564 
     | 
    
         
             
            typedef struct ddog_Slice_I64 {
         
     | 
| 
       689 
565 
     | 
    
         
             
              /**
         
     | 
| 
       690 
     | 
    
         
            -
               *  
     | 
| 
      
 566 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 567 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 568 
     | 
    
         
            +
               * zero.
         
     | 
| 
       691 
569 
     | 
    
         
             
               */
         
     | 
| 
       692 
570 
     | 
    
         
             
              const int64_t *ptr;
         
     | 
| 
       693 
571 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -718,7 +596,9 @@ typedef struct ddog_prof_Label { 
     | 
|
| 
       718 
596 
     | 
    
         | 
| 
       719 
597 
     | 
    
         
             
            typedef struct ddog_prof_Slice_Label {
         
     | 
| 
       720 
598 
     | 
    
         
             
              /**
         
     | 
| 
       721 
     | 
    
         
            -
               *  
     | 
| 
      
 599 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 600 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 601 
     | 
    
         
            +
               * zero.
         
     | 
| 
       722 
602 
     | 
    
         
             
               */
         
     | 
| 
       723 
603 
     | 
    
         
             
              const struct ddog_prof_Label *ptr;
         
     | 
| 
       724 
604 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -751,7 +631,9 @@ typedef struct ddog_prof_Sample { 
     | 
|
| 
       751 
631 
     | 
    
         | 
| 
       752 
632 
     | 
    
         
             
            typedef struct ddog_prof_Slice_Usize {
         
     | 
| 
       753 
633 
     | 
    
         
             
              /**
         
     | 
| 
       754 
     | 
    
         
            -
               *  
     | 
| 
      
 634 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 635 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 636 
     | 
    
         
            +
               * zero.
         
     | 
| 
       755 
637 
     | 
    
         
             
               */
         
     | 
| 
       756 
638 
     | 
    
         
             
              const uintptr_t *ptr;
         
     | 
| 
       757 
639 
     | 
    
         
             
              /**
         
     | 
| 
         @@ -873,6 +755,282 @@ typedef struct ddog_ContextKey { 
     | 
|
| 
       873 
755 
     | 
    
         
             
              enum ddog_MetricType _1;
         
     | 
| 
       874 
756 
     | 
    
         
             
            } ddog_ContextKey;
         
     | 
| 
       875 
757 
     | 
    
         | 
| 
      
 758 
     | 
    
         
            +
            typedef enum ddog_crasht_DemangleOptions {
         
     | 
| 
      
 759 
     | 
    
         
            +
              DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
         
     | 
| 
      
 760 
     | 
    
         
            +
              DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
         
     | 
| 
      
 761 
     | 
    
         
            +
            } ddog_crasht_DemangleOptions;
         
     | 
| 
      
 762 
     | 
    
         
            +
             
     | 
| 
      
 763 
     | 
    
         
            +
            typedef enum ddog_crasht_NormalizedAddressTypes {
         
     | 
| 
      
 764 
     | 
    
         
            +
              DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_NONE = 0,
         
     | 
| 
      
 765 
     | 
    
         
            +
              DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_ELF,
         
     | 
| 
      
 766 
     | 
    
         
            +
              DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_PDB,
         
     | 
| 
      
 767 
     | 
    
         
            +
            } ddog_crasht_NormalizedAddressTypes;
         
     | 
| 
      
 768 
     | 
    
         
            +
             
     | 
| 
      
 769 
     | 
    
         
            +
            /**
         
     | 
| 
      
 770 
     | 
    
         
            +
             * This enum represents operations a the tracked library might be engaged in.
         
     | 
| 
      
 771 
     | 
    
         
            +
             * Currently only implemented for profiling.
         
     | 
| 
      
 772 
     | 
    
         
            +
             * The idea is that if a crash consistently occurs while a particular operation
         
     | 
| 
      
 773 
     | 
    
         
            +
             * is ongoing, its likely related.
         
     | 
| 
      
 774 
     | 
    
         
            +
             *
         
     | 
| 
      
 775 
     | 
    
         
            +
             * In the future, we might also track wall-clock time of operations
         
     | 
| 
      
 776 
     | 
    
         
            +
             * (or some statistical sampling thereof) using the same enum.
         
     | 
| 
      
 777 
     | 
    
         
            +
             *
         
     | 
| 
      
 778 
     | 
    
         
            +
             * NOTE: This enum is known to be non-exhaustive.  Feel free to add new types
         
     | 
| 
      
 779 
     | 
    
         
            +
             *       as needed.
         
     | 
| 
      
 780 
     | 
    
         
            +
             */
         
     | 
| 
      
 781 
     | 
    
         
            +
            typedef enum ddog_crasht_OpTypes {
         
     | 
| 
      
 782 
     | 
    
         
            +
              DDOG_CRASHT_OP_TYPES_PROFILER_INACTIVE = 0,
         
     | 
| 
      
 783 
     | 
    
         
            +
              DDOG_CRASHT_OP_TYPES_PROFILER_COLLECTING_SAMPLE,
         
     | 
| 
      
 784 
     | 
    
         
            +
              DDOG_CRASHT_OP_TYPES_PROFILER_UNWINDING,
         
     | 
| 
      
 785 
     | 
    
         
            +
              DDOG_CRASHT_OP_TYPES_PROFILER_SERIALIZING,
         
     | 
| 
      
 786 
     | 
    
         
            +
              /**
         
     | 
| 
      
 787 
     | 
    
         
            +
               * Dummy value to allow easier iteration
         
     | 
| 
      
 788 
     | 
    
         
            +
               */
         
     | 
| 
      
 789 
     | 
    
         
            +
              DDOG_CRASHT_OP_TYPES_SIZE,
         
     | 
| 
      
 790 
     | 
    
         
            +
            } ddog_crasht_OpTypes;
         
     | 
| 
      
 791 
     | 
    
         
            +
             
     | 
| 
      
 792 
     | 
    
         
            +
            /**
         
     | 
| 
      
 793 
     | 
    
         
            +
             * Stacktrace collection occurs in the context of a crashing process.
         
     | 
| 
      
 794 
     | 
    
         
            +
             * If the stack is sufficiently corruputed, it is possible (but unlikely),
         
     | 
| 
      
 795 
     | 
    
         
            +
             * for stack trace collection itself to crash.
         
     | 
| 
      
 796 
     | 
    
         
            +
             * We recommend fully enabling stacktrace collection, but having an environment
         
     | 
| 
      
 797 
     | 
    
         
            +
             * variable to allow downgrading the collector.
         
     | 
| 
      
 798 
     | 
    
         
            +
             */
         
     | 
| 
      
 799 
     | 
    
         
            +
            typedef enum ddog_crasht_StacktraceCollection {
         
     | 
| 
      
 800 
     | 
    
         
            +
              /**
         
     | 
| 
      
 801 
     | 
    
         
            +
               * Stacktrace collection occurs in the
         
     | 
| 
      
 802 
     | 
    
         
            +
               */
         
     | 
| 
      
 803 
     | 
    
         
            +
              DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
         
     | 
| 
      
 804 
     | 
    
         
            +
              DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
         
     | 
| 
      
 805 
     | 
    
         
            +
              DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
         
     | 
| 
      
 806 
     | 
    
         
            +
              DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
         
     | 
| 
      
 807 
     | 
    
         
            +
            } ddog_crasht_StacktraceCollection;
         
     | 
| 
      
 808 
     | 
    
         
            +
             
     | 
| 
      
 809 
     | 
    
         
            +
            /**
         
     | 
| 
      
 810 
     | 
    
         
            +
             * A generic result type for when a crashtracking operation may fail,
         
     | 
| 
      
 811 
     | 
    
         
            +
             * but there's nothing to return in the case of success.
         
     | 
| 
      
 812 
     | 
    
         
            +
             */
         
     | 
| 
      
 813 
     | 
    
         
            +
            typedef enum ddog_crasht_Result_Tag {
         
     | 
| 
      
 814 
     | 
    
         
            +
              DDOG_CRASHT_RESULT_OK,
         
     | 
| 
      
 815 
     | 
    
         
            +
              DDOG_CRASHT_RESULT_ERR,
         
     | 
| 
      
 816 
     | 
    
         
            +
            } ddog_crasht_Result_Tag;
         
     | 
| 
      
 817 
     | 
    
         
            +
             
     | 
| 
      
 818 
     | 
    
         
            +
            typedef struct ddog_crasht_Result {
         
     | 
| 
      
 819 
     | 
    
         
            +
              ddog_crasht_Result_Tag tag;
         
     | 
| 
      
 820 
     | 
    
         
            +
              union {
         
     | 
| 
      
 821 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 822 
     | 
    
         
            +
                  /**
         
     | 
| 
      
 823 
     | 
    
         
            +
                   * Do not use the value of Ok. This value only exists to overcome
         
     | 
| 
      
 824 
     | 
    
         
            +
                   * Rust -> C code generation.
         
     | 
| 
      
 825 
     | 
    
         
            +
                   */
         
     | 
| 
      
 826 
     | 
    
         
            +
                  bool ok;
         
     | 
| 
      
 827 
     | 
    
         
            +
                };
         
     | 
| 
      
 828 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 829 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 830 
     | 
    
         
            +
                };
         
     | 
| 
      
 831 
     | 
    
         
            +
              };
         
     | 
| 
      
 832 
     | 
    
         
            +
            } ddog_crasht_Result;
         
     | 
| 
      
 833 
     | 
    
         
            +
             
     | 
| 
      
 834 
     | 
    
         
            +
            typedef struct ddog_crasht_Slice_CharSlice {
         
     | 
| 
      
 835 
     | 
    
         
            +
              /**
         
     | 
| 
      
 836 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 837 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 838 
     | 
    
         
            +
               * zero.
         
     | 
| 
      
 839 
     | 
    
         
            +
               */
         
     | 
| 
      
 840 
     | 
    
         
            +
              const ddog_CharSlice *ptr;
         
     | 
| 
      
 841 
     | 
    
         
            +
              /**
         
     | 
| 
      
 842 
     | 
    
         
            +
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
      
 843 
     | 
    
         
            +
               * than or equal to [isize::MAX].
         
     | 
| 
      
 844 
     | 
    
         
            +
               */
         
     | 
| 
      
 845 
     | 
    
         
            +
              uintptr_t len;
         
     | 
| 
      
 846 
     | 
    
         
            +
            } ddog_crasht_Slice_CharSlice;
         
     | 
| 
      
 847 
     | 
    
         
            +
             
     | 
| 
      
 848 
     | 
    
         
            +
            typedef struct ddog_crasht_Config {
         
     | 
| 
      
 849 
     | 
    
         
            +
              struct ddog_crasht_Slice_CharSlice additional_files;
         
     | 
| 
      
 850 
     | 
    
         
            +
              bool create_alt_stack;
         
     | 
| 
      
 851 
     | 
    
         
            +
              /**
         
     | 
| 
      
 852 
     | 
    
         
            +
               * The endpoint to send the crash report to (can be a file://).
         
     | 
| 
      
 853 
     | 
    
         
            +
               * If None, the crashtracker will infer the agent host from env variables.
         
     | 
| 
      
 854 
     | 
    
         
            +
               */
         
     | 
| 
      
 855 
     | 
    
         
            +
              const struct ddog_Endpoint *endpoint;
         
     | 
| 
      
 856 
     | 
    
         
            +
              enum ddog_crasht_StacktraceCollection resolve_frames;
         
     | 
| 
      
 857 
     | 
    
         
            +
              uint64_t timeout_secs;
         
     | 
| 
      
 858 
     | 
    
         
            +
              bool wait_for_receiver;
         
     | 
| 
      
 859 
     | 
    
         
            +
            } ddog_crasht_Config;
         
     | 
| 
      
 860 
     | 
    
         
            +
             
     | 
| 
      
 861 
     | 
    
         
            +
            typedef struct ddog_crasht_EnvVar {
         
     | 
| 
      
 862 
     | 
    
         
            +
              ddog_CharSlice key;
         
     | 
| 
      
 863 
     | 
    
         
            +
              ddog_CharSlice val;
         
     | 
| 
      
 864 
     | 
    
         
            +
            } ddog_crasht_EnvVar;
         
     | 
| 
      
 865 
     | 
    
         
            +
             
     | 
| 
      
 866 
     | 
    
         
            +
            typedef struct ddog_crasht_Slice_EnvVar {
         
     | 
| 
      
 867 
     | 
    
         
            +
              /**
         
     | 
| 
      
 868 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 869 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 870 
     | 
    
         
            +
               * zero.
         
     | 
| 
      
 871 
     | 
    
         
            +
               */
         
     | 
| 
      
 872 
     | 
    
         
            +
              const struct ddog_crasht_EnvVar *ptr;
         
     | 
| 
      
 873 
     | 
    
         
            +
              /**
         
     | 
| 
      
 874 
     | 
    
         
            +
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
      
 875 
     | 
    
         
            +
               * than or equal to [isize::MAX].
         
     | 
| 
      
 876 
     | 
    
         
            +
               */
         
     | 
| 
      
 877 
     | 
    
         
            +
              uintptr_t len;
         
     | 
| 
      
 878 
     | 
    
         
            +
            } ddog_crasht_Slice_EnvVar;
         
     | 
| 
      
 879 
     | 
    
         
            +
             
     | 
| 
      
 880 
     | 
    
         
            +
            typedef struct ddog_crasht_ReceiverConfig {
         
     | 
| 
      
 881 
     | 
    
         
            +
              struct ddog_crasht_Slice_CharSlice args;
         
     | 
| 
      
 882 
     | 
    
         
            +
              struct ddog_crasht_Slice_EnvVar env;
         
     | 
| 
      
 883 
     | 
    
         
            +
              ddog_CharSlice path_to_receiver_binary;
         
     | 
| 
      
 884 
     | 
    
         
            +
              /**
         
     | 
| 
      
 885 
     | 
    
         
            +
               * Optional filename to forward stderr to (useful for logging/debugging)
         
     | 
| 
      
 886 
     | 
    
         
            +
               */
         
     | 
| 
      
 887 
     | 
    
         
            +
              ddog_CharSlice optional_stderr_filename;
         
     | 
| 
      
 888 
     | 
    
         
            +
              /**
         
     | 
| 
      
 889 
     | 
    
         
            +
               * Optional filename to forward stdout to (useful for logging/debugging)
         
     | 
| 
      
 890 
     | 
    
         
            +
               */
         
     | 
| 
      
 891 
     | 
    
         
            +
              ddog_CharSlice optional_stdout_filename;
         
     | 
| 
      
 892 
     | 
    
         
            +
            } ddog_crasht_ReceiverConfig;
         
     | 
| 
      
 893 
     | 
    
         
            +
             
     | 
| 
      
 894 
     | 
    
         
            +
            typedef struct ddog_crasht_Metadata {
         
     | 
| 
      
 895 
     | 
    
         
            +
              ddog_CharSlice library_name;
         
     | 
| 
      
 896 
     | 
    
         
            +
              ddog_CharSlice library_version;
         
     | 
| 
      
 897 
     | 
    
         
            +
              ddog_CharSlice family;
         
     | 
| 
      
 898 
     | 
    
         
            +
              /**
         
     | 
| 
      
 899 
     | 
    
         
            +
               * Should include "service", "environment", etc
         
     | 
| 
      
 900 
     | 
    
         
            +
               */
         
     | 
| 
      
 901 
     | 
    
         
            +
              const struct ddog_Vec_Tag *tags;
         
     | 
| 
      
 902 
     | 
    
         
            +
            } ddog_crasht_Metadata;
         
     | 
| 
      
 903 
     | 
    
         
            +
             
     | 
| 
      
 904 
     | 
    
         
            +
            typedef enum ddog_crasht_UsizeResult_Tag {
         
     | 
| 
      
 905 
     | 
    
         
            +
              DDOG_CRASHT_USIZE_RESULT_OK,
         
     | 
| 
      
 906 
     | 
    
         
            +
              DDOG_CRASHT_USIZE_RESULT_ERR,
         
     | 
| 
      
 907 
     | 
    
         
            +
            } ddog_crasht_UsizeResult_Tag;
         
     | 
| 
      
 908 
     | 
    
         
            +
             
     | 
| 
      
 909 
     | 
    
         
            +
            typedef struct ddog_crasht_UsizeResult {
         
     | 
| 
      
 910 
     | 
    
         
            +
              ddog_crasht_UsizeResult_Tag tag;
         
     | 
| 
      
 911 
     | 
    
         
            +
              union {
         
     | 
| 
      
 912 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 913 
     | 
    
         
            +
                  uintptr_t ok;
         
     | 
| 
      
 914 
     | 
    
         
            +
                };
         
     | 
| 
      
 915 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 916 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 917 
     | 
    
         
            +
                };
         
     | 
| 
      
 918 
     | 
    
         
            +
              };
         
     | 
| 
      
 919 
     | 
    
         
            +
            } ddog_crasht_UsizeResult;
         
     | 
| 
      
 920 
     | 
    
         
            +
             
     | 
| 
      
 921 
     | 
    
         
            +
            /**
         
     | 
| 
      
 922 
     | 
    
         
            +
             * Represents a CrashInfo. Do not access its member for any reason, only use
         
     | 
| 
      
 923 
     | 
    
         
            +
             * the C API functions on this struct.
         
     | 
| 
      
 924 
     | 
    
         
            +
             */
         
     | 
| 
      
 925 
     | 
    
         
            +
            typedef struct ddog_crasht_CrashInfo {
         
     | 
| 
      
 926 
     | 
    
         
            +
              struct ddog_crasht_CrashInfo *inner;
         
     | 
| 
      
 927 
     | 
    
         
            +
            } ddog_crasht_CrashInfo;
         
     | 
| 
      
 928 
     | 
    
         
            +
             
     | 
| 
      
 929 
     | 
    
         
            +
            /**
         
     | 
| 
      
 930 
     | 
    
         
            +
             * Returned by [ddog_prof_Profile_new].
         
     | 
| 
      
 931 
     | 
    
         
            +
             */
         
     | 
| 
      
 932 
     | 
    
         
            +
            typedef enum ddog_crasht_CrashInfoNewResult_Tag {
         
     | 
| 
      
 933 
     | 
    
         
            +
              DDOG_CRASHT_CRASH_INFO_NEW_RESULT_OK,
         
     | 
| 
      
 934 
     | 
    
         
            +
              DDOG_CRASHT_CRASH_INFO_NEW_RESULT_ERR,
         
     | 
| 
      
 935 
     | 
    
         
            +
            } ddog_crasht_CrashInfoNewResult_Tag;
         
     | 
| 
      
 936 
     | 
    
         
            +
             
     | 
| 
      
 937 
     | 
    
         
            +
            typedef struct ddog_crasht_CrashInfoNewResult {
         
     | 
| 
      
 938 
     | 
    
         
            +
              ddog_crasht_CrashInfoNewResult_Tag tag;
         
     | 
| 
      
 939 
     | 
    
         
            +
              union {
         
     | 
| 
      
 940 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 941 
     | 
    
         
            +
                  struct ddog_crasht_CrashInfo ok;
         
     | 
| 
      
 942 
     | 
    
         
            +
                };
         
     | 
| 
      
 943 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 944 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 945 
     | 
    
         
            +
                };
         
     | 
| 
      
 946 
     | 
    
         
            +
              };
         
     | 
| 
      
 947 
     | 
    
         
            +
            } ddog_crasht_CrashInfoNewResult;
         
     | 
| 
      
 948 
     | 
    
         
            +
             
     | 
| 
      
 949 
     | 
    
         
            +
            typedef struct ddog_crasht_SigInfo {
         
     | 
| 
      
 950 
     | 
    
         
            +
              uint64_t signum;
         
     | 
| 
      
 951 
     | 
    
         
            +
              ddog_CharSlice signame;
         
     | 
| 
      
 952 
     | 
    
         
            +
            } ddog_crasht_SigInfo;
         
     | 
| 
      
 953 
     | 
    
         
            +
             
     | 
| 
      
 954 
     | 
    
         
            +
            typedef struct ddog_crasht_StackFrameNames {
         
     | 
| 
      
 955 
     | 
    
         
            +
              struct ddog_Option_U32 colno;
         
     | 
| 
      
 956 
     | 
    
         
            +
              ddog_CharSlice filename;
         
     | 
| 
      
 957 
     | 
    
         
            +
              struct ddog_Option_U32 lineno;
         
     | 
| 
      
 958 
     | 
    
         
            +
              ddog_CharSlice name;
         
     | 
| 
      
 959 
     | 
    
         
            +
            } ddog_crasht_StackFrameNames;
         
     | 
| 
      
 960 
     | 
    
         
            +
             
     | 
| 
      
 961 
     | 
    
         
            +
            typedef struct ddog_crasht_Slice_StackFrameNames {
         
     | 
| 
      
 962 
     | 
    
         
            +
              /**
         
     | 
| 
      
 963 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 964 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 965 
     | 
    
         
            +
               * zero.
         
     | 
| 
      
 966 
     | 
    
         
            +
               */
         
     | 
| 
      
 967 
     | 
    
         
            +
              const struct ddog_crasht_StackFrameNames *ptr;
         
     | 
| 
      
 968 
     | 
    
         
            +
              /**
         
     | 
| 
      
 969 
     | 
    
         
            +
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
      
 970 
     | 
    
         
            +
               * than or equal to [isize::MAX].
         
     | 
| 
      
 971 
     | 
    
         
            +
               */
         
     | 
| 
      
 972 
     | 
    
         
            +
              uintptr_t len;
         
     | 
| 
      
 973 
     | 
    
         
            +
            } ddog_crasht_Slice_StackFrameNames;
         
     | 
| 
      
 974 
     | 
    
         
            +
             
     | 
| 
      
 975 
     | 
    
         
            +
            typedef struct ddog_crasht_NormalizedAddress {
         
     | 
| 
      
 976 
     | 
    
         
            +
              uint64_t file_offset;
         
     | 
| 
      
 977 
     | 
    
         
            +
              ddog_ByteSlice build_id;
         
     | 
| 
      
 978 
     | 
    
         
            +
              uint64_t age;
         
     | 
| 
      
 979 
     | 
    
         
            +
              ddog_CharSlice path;
         
     | 
| 
      
 980 
     | 
    
         
            +
              enum ddog_crasht_NormalizedAddressTypes typ;
         
     | 
| 
      
 981 
     | 
    
         
            +
            } ddog_crasht_NormalizedAddress;
         
     | 
| 
      
 982 
     | 
    
         
            +
             
     | 
| 
      
 983 
     | 
    
         
            +
            typedef struct ddog_crasht_StackFrame {
         
     | 
| 
      
 984 
     | 
    
         
            +
              ddog_CharSlice build_id;
         
     | 
| 
      
 985 
     | 
    
         
            +
              uintptr_t ip;
         
     | 
| 
      
 986 
     | 
    
         
            +
              uintptr_t module_base_address;
         
     | 
| 
      
 987 
     | 
    
         
            +
              struct ddog_crasht_Slice_StackFrameNames names;
         
     | 
| 
      
 988 
     | 
    
         
            +
              struct ddog_crasht_NormalizedAddress normalized_ip;
         
     | 
| 
      
 989 
     | 
    
         
            +
              uintptr_t sp;
         
     | 
| 
      
 990 
     | 
    
         
            +
              uintptr_t symbol_address;
         
     | 
| 
      
 991 
     | 
    
         
            +
            } ddog_crasht_StackFrame;
         
     | 
| 
      
 992 
     | 
    
         
            +
             
     | 
| 
      
 993 
     | 
    
         
            +
            typedef struct ddog_crasht_Slice_StackFrame {
         
     | 
| 
      
 994 
     | 
    
         
            +
              /**
         
     | 
| 
      
 995 
     | 
    
         
            +
               * Should be non-null and suitably aligned for the underlying type. It is
         
     | 
| 
      
 996 
     | 
    
         
            +
               * allowed but not recommended for the pointer to be null when the len is
         
     | 
| 
      
 997 
     | 
    
         
            +
               * zero.
         
     | 
| 
      
 998 
     | 
    
         
            +
               */
         
     | 
| 
      
 999 
     | 
    
         
            +
              const struct ddog_crasht_StackFrame *ptr;
         
     | 
| 
      
 1000 
     | 
    
         
            +
              /**
         
     | 
| 
      
 1001 
     | 
    
         
            +
               * The number of elements (not bytes) that `.ptr` points to. Must be less
         
     | 
| 
      
 1002 
     | 
    
         
            +
               * than or equal to [isize::MAX].
         
     | 
| 
      
 1003 
     | 
    
         
            +
               */
         
     | 
| 
      
 1004 
     | 
    
         
            +
              uintptr_t len;
         
     | 
| 
      
 1005 
     | 
    
         
            +
            } ddog_crasht_Slice_StackFrame;
         
     | 
| 
      
 1006 
     | 
    
         
            +
             
     | 
| 
      
 1007 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1008 
     | 
    
         
            +
             * A wrapper for returning owned strings from FFI
         
     | 
| 
      
 1009 
     | 
    
         
            +
             */
         
     | 
| 
      
 1010 
     | 
    
         
            +
            typedef struct ddog_crasht_StringWrapper {
         
     | 
| 
      
 1011 
     | 
    
         
            +
              /**
         
     | 
| 
      
 1012 
     | 
    
         
            +
               * This is a String stuffed into the vec.
         
     | 
| 
      
 1013 
     | 
    
         
            +
               */
         
     | 
| 
      
 1014 
     | 
    
         
            +
              struct ddog_Vec_U8 message;
         
     | 
| 
      
 1015 
     | 
    
         
            +
            } ddog_crasht_StringWrapper;
         
     | 
| 
      
 1016 
     | 
    
         
            +
             
     | 
| 
      
 1017 
     | 
    
         
            +
            typedef enum ddog_crasht_StringWrapperResult_Tag {
         
     | 
| 
      
 1018 
     | 
    
         
            +
              DDOG_CRASHT_STRING_WRAPPER_RESULT_OK,
         
     | 
| 
      
 1019 
     | 
    
         
            +
              DDOG_CRASHT_STRING_WRAPPER_RESULT_ERR,
         
     | 
| 
      
 1020 
     | 
    
         
            +
            } ddog_crasht_StringWrapperResult_Tag;
         
     | 
| 
      
 1021 
     | 
    
         
            +
             
     | 
| 
      
 1022 
     | 
    
         
            +
            typedef struct ddog_crasht_StringWrapperResult {
         
     | 
| 
      
 1023 
     | 
    
         
            +
              ddog_crasht_StringWrapperResult_Tag tag;
         
     | 
| 
      
 1024 
     | 
    
         
            +
              union {
         
     | 
| 
      
 1025 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 1026 
     | 
    
         
            +
                  struct ddog_crasht_StringWrapper ok;
         
     | 
| 
      
 1027 
     | 
    
         
            +
                };
         
     | 
| 
      
 1028 
     | 
    
         
            +
                struct {
         
     | 
| 
      
 1029 
     | 
    
         
            +
                  struct ddog_Error err;
         
     | 
| 
      
 1030 
     | 
    
         
            +
                };
         
     | 
| 
      
 1031 
     | 
    
         
            +
              };
         
     | 
| 
      
 1032 
     | 
    
         
            +
            } ddog_crasht_StringWrapperResult;
         
     | 
| 
      
 1033 
     | 
    
         
            +
             
     | 
| 
       876 
1034 
     | 
    
         
             
            #ifdef __cplusplus
         
     | 
| 
       877 
1035 
     | 
    
         
             
            extern "C" {
         
     | 
| 
       878 
1036 
     | 
    
         
             
            #endif // __cplusplus
         
     | 
| 
         @@ -893,8 +1051,80 @@ ddog_CharSlice ddog_Error_message(const struct ddog_Error *error); 
     | 
|
| 
       893 
1051 
     | 
    
         | 
| 
       894 
1052 
     | 
    
         
             
            void ddog_MaybeError_drop(ddog_MaybeError);
         
     | 
| 
       895 
1053 
     | 
    
         | 
| 
      
 1054 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1055 
     | 
    
         
            +
             * Creates a new ArrayQueue with the given capacity and item_delete_fn.
         
     | 
| 
      
 1056 
     | 
    
         
            +
             * The item_delete_fn is called when an item is dropped from the queue.
         
     | 
| 
      
 1057 
     | 
    
         
            +
             */
         
     | 
| 
      
 1058 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 1059 
     | 
    
         
            +
            struct ddog_ArrayQueue_NewResult ddog_ArrayQueue_new(uintptr_t capacity,
         
     | 
| 
      
 1060 
     | 
    
         
            +
                                                                 void (*item_delete_fn)(void*));
         
     | 
| 
      
 1061 
     | 
    
         
            +
             
     | 
| 
      
 1062 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1063 
     | 
    
         
            +
             * Drops the ArrayQueue.
         
     | 
| 
      
 1064 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1065 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1066 
     | 
    
         
            +
             */
         
     | 
| 
      
 1067 
     | 
    
         
            +
            void ddog_ArrayQueue_drop(struct ddog_ArrayQueue *queue);
         
     | 
| 
      
 1068 
     | 
    
         
            +
             
     | 
| 
      
 1069 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1070 
     | 
    
         
            +
             * Pushes an item into the ArrayQueue. It returns the given value if the queue is full.
         
     | 
| 
      
 1071 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1072 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new. The value
         
     | 
| 
      
 1073 
     | 
    
         
            +
             * is null or points to a valid memory location that can be deallocated by the item_delete_fn.
         
     | 
| 
      
 1074 
     | 
    
         
            +
             */
         
     | 
| 
      
 1075 
     | 
    
         
            +
            struct ddog_ArrayQueue_PushResult ddog_ArrayQueue_push(const struct ddog_ArrayQueue *queue_ptr,
         
     | 
| 
      
 1076 
     | 
    
         
            +
                                                                   void *value);
         
     | 
| 
      
 1077 
     | 
    
         
            +
             
     | 
| 
      
 1078 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1079 
     | 
    
         
            +
             * Pushes an element into the queue, replacing the oldest element if necessary.
         
     | 
| 
      
 1080 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1081 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new. The value
         
     | 
| 
      
 1082 
     | 
    
         
            +
             * is null or points to a valid memory location that can be deallocated by the item_delete_fn.
         
     | 
| 
      
 1083 
     | 
    
         
            +
             */
         
     | 
| 
      
 1084 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 1085 
     | 
    
         
            +
            struct ddog_ArrayQueue_PushResult ddog_ArrayQueue_force_push(const struct ddog_ArrayQueue *queue_ptr,
         
     | 
| 
      
 1086 
     | 
    
         
            +
                                                                         void *value);
         
     | 
| 
      
 1087 
     | 
    
         
            +
             
     | 
| 
      
 1088 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1089 
     | 
    
         
            +
             * Pops an item from the ArrayQueue.
         
     | 
| 
      
 1090 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1091 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1092 
     | 
    
         
            +
             */
         
     | 
| 
      
 1093 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 1094 
     | 
    
         
            +
            struct ddog_ArrayQueue_PopResult ddog_ArrayQueue_pop(const struct ddog_ArrayQueue *queue_ptr);
         
     | 
| 
      
 1095 
     | 
    
         
            +
             
     | 
| 
      
 1096 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1097 
     | 
    
         
            +
             * Checks if the ArrayQueue is empty.
         
     | 
| 
      
 1098 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1099 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1100 
     | 
    
         
            +
             */
         
     | 
| 
      
 1101 
     | 
    
         
            +
            struct ddog_ArrayQueue_BoolResult ddog_ArrayQueue_is_empty(const struct ddog_ArrayQueue *queue_ptr);
         
     | 
| 
      
 1102 
     | 
    
         
            +
             
     | 
| 
      
 1103 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1104 
     | 
    
         
            +
             * Returns the length of the ArrayQueue.
         
     | 
| 
      
 1105 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1106 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1107 
     | 
    
         
            +
             */
         
     | 
| 
      
 1108 
     | 
    
         
            +
            struct ddog_ArrayQueue_UsizeResult ddog_ArrayQueue_len(const struct ddog_ArrayQueue *queue_ptr);
         
     | 
| 
      
 1109 
     | 
    
         
            +
             
     | 
| 
      
 1110 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1111 
     | 
    
         
            +
             * Returns true if the underlying queue is full.
         
     | 
| 
      
 1112 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1113 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1114 
     | 
    
         
            +
             */
         
     | 
| 
      
 1115 
     | 
    
         
            +
            struct ddog_ArrayQueue_BoolResult ddog_ArrayQueue_is_full(const struct ddog_ArrayQueue *queue_ptr);
         
     | 
| 
      
 1116 
     | 
    
         
            +
             
     | 
| 
      
 1117 
     | 
    
         
            +
            /**
         
     | 
| 
      
 1118 
     | 
    
         
            +
             * Returns the capacity of the ArrayQueue.
         
     | 
| 
      
 1119 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 1120 
     | 
    
         
            +
             * The pointer is null or points to a valid memory location allocated by ArrayQueue_new.
         
     | 
| 
      
 1121 
     | 
    
         
            +
             */
         
     | 
| 
      
 1122 
     | 
    
         
            +
            struct ddog_ArrayQueue_UsizeResult ddog_ArrayQueue_capacity(const struct ddog_ArrayQueue *queue_ptr);
         
     | 
| 
      
 1123 
     | 
    
         
            +
             
     | 
| 
       896 
1124 
     | 
    
         
             
            DDOG_CHECK_RETURN struct ddog_Endpoint *ddog_endpoint_from_url(ddog_CharSlice url);
         
     | 
| 
       897 
1125 
     | 
    
         | 
| 
      
 1126 
     | 
    
         
            +
            DDOG_CHECK_RETURN struct ddog_Endpoint *ddog_endpoint_from_filename(ddog_CharSlice filename);
         
     | 
| 
      
 1127 
     | 
    
         
            +
             
     | 
| 
       898 
1128 
     | 
    
         
             
            DDOG_CHECK_RETURN struct ddog_Endpoint *ddog_endpoint_from_api_key(ddog_CharSlice api_key);
         
     | 
| 
       899 
1129 
     | 
    
         | 
| 
       900 
1130 
     | 
    
         
             
            DDOG_CHECK_RETURN
         
     | 
| 
         @@ -902,8 +1132,16 @@ struct ddog_Error *ddog_endpoint_from_api_key_and_site(ddog_CharSlice api_key, 
     | 
|
| 
       902 
1132 
     | 
    
         
             
                                                                   ddog_CharSlice site,
         
     | 
| 
       903 
1133 
     | 
    
         
             
                                                                   struct ddog_Endpoint **endpoint);
         
     | 
| 
       904 
1134 
     | 
    
         | 
| 
      
 1135 
     | 
    
         
            +
            void ddog_endpoint_set_timeout(struct ddog_Endpoint *endpoint, uint64_t millis);
         
     | 
| 
      
 1136 
     | 
    
         
            +
             
     | 
| 
      
 1137 
     | 
    
         
            +
            void ddog_endpoint_set_test_token(struct ddog_Endpoint *endpoint, ddog_CharSlice token);
         
     | 
| 
      
 1138 
     | 
    
         
            +
             
     | 
| 
       905 
1139 
     | 
    
         
             
            void ddog_endpoint_drop(struct ddog_Endpoint*);
         
     | 
| 
       906 
1140 
     | 
    
         | 
| 
      
 1141 
     | 
    
         
            +
            struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);
         
     | 
| 
      
 1142 
     | 
    
         
            +
             
     | 
| 
      
 1143 
     | 
    
         
            +
            struct ddog_Option_U32 ddog_Option_U32_none(void);
         
     | 
| 
      
 1144 
     | 
    
         
            +
             
     | 
| 
       907 
1145 
     | 
    
         
             
            /**
         
     | 
| 
       908 
1146 
     | 
    
         
             
             * # Safety
         
     | 
| 
       909 
1147 
     | 
    
         
             
             * Only pass null or a valid reference to a `ddog_StringWrapper`.
         
     |