libdatadog 25.0.0.1.0-aarch64-linux → 29.0.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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +6 -0
  3. data/LICENSE.Apache +200 -0
  4. data/LICENSE.BSD3 +24 -0
  5. data/NOTICE +4 -0
  6. data/lib/libdatadog/version.rb +1 -1
  7. data/lib/libdatadog.rb +6 -0
  8. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +17987 -11921
  9. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +304 -192
  10. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +55 -1
  11. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +6 -1
  12. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/library-config.h +2 -0
  13. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +150 -64
  14. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  15. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  16. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +17987 -11921
  17. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +304 -192
  18. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +55 -1
  19. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +6 -1
  20. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/library-config.h +2 -0
  21. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +150 -64
  22. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  23. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  24. metadata +39 -35
  25. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  26. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  27. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  28. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  29. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  30. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
  31. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  32. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  33. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  34. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  35. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  36. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  37. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  38. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
  39. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  40. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
@@ -257,8 +257,99 @@ typedef struct ddog_Vec_Tag_ParseResult {
257
257
  struct ddog_Error *error_message;
258
258
  } ddog_Vec_Tag_ParseResult;
259
259
 
260
+ typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
261
+ typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
262
+ typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
263
+
260
264
  #define ddog_prof_Set_SIZE_HINT (1024 * 1024)
261
265
 
266
+ /**
267
+ * Sample types supported by Datadog's profilers.
268
+ *
269
+ * Variants are sourced from:
270
+ * - **dd-trace-rb**: `stack_recorder.c` (`all_value_types`)
271
+ * - **dd-trace-py**: `dd_wrapper/include/types.hpp`
272
+ * - **dd-trace-php**: `profiling/src/profiling/samples.rs` (I/O profiling)
273
+ * - **dd-trace-dotnet**: Sample type definitions for allocations, locks, CPU, walltime,
274
+ * exceptions, live objects, HTTP requests
275
+ * - **pprof-nodejs**: `profile-serializer.ts` (value type functions)
276
+ */
277
+ typedef enum ddog_prof_SampleType {
278
+ DDOG_PROF_SAMPLE_TYPE_ALLOC_SAMPLES,
279
+ DDOG_PROF_SAMPLE_TYPE_ALLOC_SAMPLES_UNSCALED,
280
+ DDOG_PROF_SAMPLE_TYPE_ALLOC_SIZE,
281
+ DDOG_PROF_SAMPLE_TYPE_ALLOC_SPACE,
282
+ DDOG_PROF_SAMPLE_TYPE_CPU_TIME,
283
+ DDOG_PROF_SAMPLE_TYPE_CPU_SAMPLES,
284
+ /**
285
+ * Legacy: Use `CpuTime` instead for consistency with naming scheme
286
+ */
287
+ DDOG_PROF_SAMPLE_TYPE_CPU_LEGACY,
288
+ /**
289
+ * Legacy: Use `CpuSamples` instead for consistency with naming scheme
290
+ */
291
+ DDOG_PROF_SAMPLE_TYPE_CPU_SAMPLE_LEGACY,
292
+ DDOG_PROF_SAMPLE_TYPE_EXCEPTION_SAMPLES,
293
+ /**
294
+ * Legacy: Use `ExceptionSamples` instead for consistency with naming scheme
295
+ */
296
+ DDOG_PROF_SAMPLE_TYPE_EXCEPTION_LEGACY,
297
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_READ_SIZE,
298
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_READ_SIZE_SAMPLES,
299
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_READ_TIME,
300
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_READ_TIME_SAMPLES,
301
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_WRITE_SIZE,
302
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_WRITE_SIZE_SAMPLES,
303
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_WRITE_TIME,
304
+ DDOG_PROF_SAMPLE_TYPE_FILE_IO_WRITE_TIME_SAMPLES,
305
+ DDOG_PROF_SAMPLE_TYPE_GPU_ALLOC_SAMPLES,
306
+ DDOG_PROF_SAMPLE_TYPE_GPU_FLOPS,
307
+ DDOG_PROF_SAMPLE_TYPE_GPU_FLOPS_SAMPLES,
308
+ DDOG_PROF_SAMPLE_TYPE_GPU_SAMPLES,
309
+ DDOG_PROF_SAMPLE_TYPE_GPU_SPACE,
310
+ DDOG_PROF_SAMPLE_TYPE_GPU_TIME,
311
+ DDOG_PROF_SAMPLE_TYPE_HEAP_LIVE_SAMPLES,
312
+ DDOG_PROF_SAMPLE_TYPE_HEAP_LIVE_SIZE,
313
+ DDOG_PROF_SAMPLE_TYPE_HEAP_SPACE,
314
+ DDOG_PROF_SAMPLE_TYPE_INUSE_OBJECTS,
315
+ DDOG_PROF_SAMPLE_TYPE_INUSE_SPACE,
316
+ DDOG_PROF_SAMPLE_TYPE_LOCK_ACQUIRE,
317
+ DDOG_PROF_SAMPLE_TYPE_LOCK_ACQUIRE_WAIT,
318
+ DDOG_PROF_SAMPLE_TYPE_LOCK_COUNT,
319
+ DDOG_PROF_SAMPLE_TYPE_LOCK_RELEASE,
320
+ DDOG_PROF_SAMPLE_TYPE_LOCK_RELEASE_HOLD,
321
+ DDOG_PROF_SAMPLE_TYPE_LOCK_TIME,
322
+ /**
323
+ * Legacy: Use `InuseObjects` instead for consistency with naming scheme
324
+ */
325
+ DDOG_PROF_SAMPLE_TYPE_OBJECTS_LEGACY,
326
+ DDOG_PROF_SAMPLE_TYPE_REQUEST_TIME,
327
+ DDOG_PROF_SAMPLE_TYPE_SAMPLE,
328
+ DDOG_PROF_SAMPLE_TYPE_TRACEPOINT,
329
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_READ_SIZE,
330
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_READ_SIZE_SAMPLES,
331
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_READ_TIME,
332
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_READ_TIME_SAMPLES,
333
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_WRITE_SIZE,
334
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_WRITE_SIZE_SAMPLES,
335
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_WRITE_TIME,
336
+ DDOG_PROF_SAMPLE_TYPE_SOCKET_WRITE_TIME_SAMPLES,
337
+ /**
338
+ * Legacy: Use specific space variants (`InuseSpace`, `HeapSpace`, `AllocSpace`) instead
339
+ */
340
+ DDOG_PROF_SAMPLE_TYPE_SPACE_LEGACY,
341
+ DDOG_PROF_SAMPLE_TYPE_TIMELINE,
342
+ DDOG_PROF_SAMPLE_TYPE_WALL_SAMPLES,
343
+ DDOG_PROF_SAMPLE_TYPE_WALL_TIME,
344
+ /**
345
+ * Legacy: Use `WallTime` instead for consistency with naming scheme
346
+ */
347
+ DDOG_PROF_SAMPLE_TYPE_WALL_LEGACY,
348
+ DDOG_PROF_SAMPLE_TYPE_EXPERIMENTAL_COUNT,
349
+ DDOG_PROF_SAMPLE_TYPE_EXPERIMENTAL_NANOSECONDS,
350
+ DDOG_PROF_SAMPLE_TYPE_EXPERIMENTAL_BYTES,
351
+ } ddog_prof_SampleType;
352
+
262
353
  typedef enum ddog_prof_Utf8Option {
263
354
  /**
264
355
  * The string is assumed to be valid UTF-8. If it's not, the behavior
@@ -276,8 +367,12 @@ typedef enum ddog_prof_Utf8Option {
276
367
  DDOG_PROF_UTF8_OPTION_VALIDATE,
277
368
  } ddog_prof_Utf8Option;
278
369
 
370
+ typedef struct ddog_OpaqueCancellationToken ddog_OpaqueCancellationToken;
371
+
279
372
  typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
280
373
 
374
+ typedef struct ddog_prof_ExporterManager ddog_prof_ExporterManager;
375
+
281
376
  typedef struct ddog_prof_Exporter ddog_prof_Exporter;
282
377
 
283
378
  /**
@@ -291,8 +386,6 @@ typedef struct ddog_prof_Exporter ddog_prof_Exporter;
291
386
  */
292
387
  typedef struct ddog_prof_ProfilesDictionary ddog_prof_ProfilesDictionary;
293
388
 
294
- typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
295
-
296
389
  typedef struct ddog_Slice_U8 {
297
390
  /**
298
391
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -337,17 +430,23 @@ typedef enum ddog_prof_Endpoint_Tag {
337
430
  DDOG_PROF_ENDPOINT_FILE,
338
431
  } ddog_prof_Endpoint_Tag;
339
432
 
433
+ typedef struct ddog_prof_Endpoint_ddog_prof_Agent_Body {
434
+ ddog_CharSlice _0;
435
+ uint64_t _1;
436
+ bool _2;
437
+ } ddog_prof_Endpoint_ddog_prof_Agent_Body;
438
+
340
439
  typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
341
440
  ddog_CharSlice _0;
342
441
  ddog_CharSlice _1;
442
+ uint64_t _2;
443
+ bool _3;
343
444
  } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
344
445
 
345
446
  typedef struct ddog_prof_Endpoint {
346
447
  ddog_prof_Endpoint_Tag tag;
347
448
  union {
348
- struct {
349
- ddog_CharSlice agent;
350
- };
449
+ ddog_prof_Endpoint_ddog_prof_Agent_Body AGENT;
351
450
  ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
352
451
  struct {
353
452
  ddog_CharSlice file;
@@ -384,52 +483,30 @@ typedef struct ddog_prof_ProfileExporter_Result {
384
483
  };
385
484
  } ddog_prof_ProfileExporter_Result;
386
485
 
387
- /**
388
- * A generic result type for when an operation may fail,
389
- * but there's nothing to return in the case of success.
390
- */
391
- typedef enum ddog_VoidResult_Tag {
392
- DDOG_VOID_RESULT_OK,
393
- DDOG_VOID_RESULT_ERR,
394
- } ddog_VoidResult_Tag;
395
-
396
- typedef struct ddog_VoidResult {
397
- ddog_VoidResult_Tag tag;
398
- union {
399
- struct {
400
- struct ddog_Error err;
401
- };
402
- };
403
- } ddog_VoidResult;
404
-
405
- /**
406
- * Represents an object that should only be referred to by its handle.
407
- * Do not access its member for any reason, only use the C API functions on this struct.
408
- */
409
- typedef struct ddog_prof_Request {
410
- struct ddog_prof_Exporter_Request *inner;
411
- } ddog_prof_Request;
486
+ typedef struct ddog_HttpStatus {
487
+ uint16_t code;
488
+ } ddog_HttpStatus;
412
489
 
413
490
  /**
414
491
  * A generic result type for when an operation may fail,
415
492
  * or may return <T> in case of success.
416
493
  */
417
- typedef enum ddog_prof_Request_Result_Tag {
418
- DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
419
- DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
420
- } ddog_prof_Request_Result_Tag;
494
+ typedef enum ddog_prof_Result_HttpStatus_Tag {
495
+ DDOG_PROF_RESULT_HTTP_STATUS_OK_HTTP_STATUS,
496
+ DDOG_PROF_RESULT_HTTP_STATUS_ERR_HTTP_STATUS,
497
+ } ddog_prof_Result_HttpStatus_Tag;
421
498
 
422
- typedef struct ddog_prof_Request_Result {
423
- ddog_prof_Request_Result_Tag tag;
499
+ typedef struct ddog_prof_Result_HttpStatus {
500
+ ddog_prof_Result_HttpStatus_Tag tag;
424
501
  union {
425
502
  struct {
426
- struct ddog_prof_Request ok;
503
+ struct ddog_HttpStatus ok;
427
504
  };
428
505
  struct {
429
506
  struct ddog_Error err;
430
507
  };
431
508
  };
432
- } ddog_prof_Request_Result;
509
+ } ddog_prof_Result_HttpStatus;
433
510
 
434
511
  /**
435
512
  * Represents an object that should only be referred to by its handle.
@@ -439,40 +516,62 @@ typedef struct ddog_prof_EncodedProfile {
439
516
  struct ddog_prof_EncodedProfile *inner;
440
517
  } ddog_prof_EncodedProfile;
441
518
 
442
- typedef struct ddog_HttpStatus {
443
- uint16_t code;
444
- } ddog_HttpStatus;
519
+ typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
520
+
521
+ /**
522
+ * Represents an object that should only be referred to by its handle.
523
+ * Do not access its member for any reason, only use the C API functions on this struct.
524
+ */
525
+ typedef struct ddog_CancellationToken {
526
+ ddog_prof_TokioCancellationToken *inner;
527
+ } ddog_CancellationToken;
528
+
529
+ /**
530
+ * Represents an object that should only be referred to by its handle.
531
+ * Do not access its member for any reason, only use the C API functions on this struct.
532
+ */
533
+ typedef struct ddog_prof_Handle_ExporterManager {
534
+ struct ddog_prof_ExporterManager *inner;
535
+ } ddog_prof_Handle_ExporterManager;
445
536
 
446
537
  /**
447
538
  * A generic result type for when an operation may fail,
448
539
  * or may return <T> in case of success.
449
540
  */
450
- typedef enum ddog_prof_Result_HttpStatus_Tag {
451
- DDOG_PROF_RESULT_HTTP_STATUS_OK_HTTP_STATUS,
452
- DDOG_PROF_RESULT_HTTP_STATUS_ERR_HTTP_STATUS,
453
- } ddog_prof_Result_HttpStatus_Tag;
541
+ typedef enum ddog_prof_Result_HandleExporterManager_Tag {
542
+ DDOG_PROF_RESULT_HANDLE_EXPORTER_MANAGER_OK_HANDLE_EXPORTER_MANAGER,
543
+ DDOG_PROF_RESULT_HANDLE_EXPORTER_MANAGER_ERR_HANDLE_EXPORTER_MANAGER,
544
+ } ddog_prof_Result_HandleExporterManager_Tag;
454
545
 
455
- typedef struct ddog_prof_Result_HttpStatus {
456
- ddog_prof_Result_HttpStatus_Tag tag;
546
+ typedef struct ddog_prof_Result_HandleExporterManager {
547
+ ddog_prof_Result_HandleExporterManager_Tag tag;
457
548
  union {
458
549
  struct {
459
- struct ddog_HttpStatus ok;
550
+ struct ddog_prof_Handle_ExporterManager ok;
460
551
  };
461
552
  struct {
462
553
  struct ddog_Error err;
463
554
  };
464
555
  };
465
- } ddog_prof_Result_HttpStatus;
466
-
467
- typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
556
+ } ddog_prof_Result_HandleExporterManager;
468
557
 
469
558
  /**
470
- * Represents an object that should only be referred to by its handle.
471
- * Do not access its member for any reason, only use the C API functions on this struct.
559
+ * A generic result type for when an operation may fail,
560
+ * but there's nothing to return in the case of success.
472
561
  */
473
- typedef struct ddog_CancellationToken {
474
- ddog_prof_TokioCancellationToken *inner;
475
- } ddog_CancellationToken;
562
+ typedef enum ddog_VoidResult_Tag {
563
+ DDOG_VOID_RESULT_OK,
564
+ DDOG_VOID_RESULT_ERR,
565
+ } ddog_VoidResult_Tag;
566
+
567
+ typedef struct ddog_VoidResult {
568
+ ddog_VoidResult_Tag tag;
569
+ union {
570
+ struct {
571
+ struct ddog_Error err;
572
+ };
573
+ };
574
+ } ddog_VoidResult;
476
575
 
477
576
  /**
478
577
  * Represents the result of an operation that either succeeds with no value, or fails with an
@@ -486,38 +585,36 @@ typedef struct ddog_CancellationToken {
486
585
  * A `ProfileStatus` owns its error message data. When a `ProfileStatus` with an error is
487
586
  * created, it takes ownership of the error string (either as a static reference or heap
488
587
  * allocation). The caller is responsible for eventually calling [`ddog_prof_Status_drop`] to
489
- * free any heap-allocated memory. This is safe to call on OK as well; it does nothing.
588
+ * free any heap-allocated memory. This is safe to call on OK as well.
490
589
  *
491
590
  * # FFI Safety
492
591
  *
493
- * This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat
494
- * this as an opaque struct and use the provided FFI functions to inspect and drop it.
592
+ * This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat the
593
+ * `.flags` as opaque and use API functions; the `.err` field is guaranteed to be null when the
594
+ * `ProfileStatus` is OK, and on Err it will be non-null pointer to a UTF8 encoded string which
595
+ * has a null terminator.
495
596
  */
496
597
  typedef struct ddog_prof_Status {
497
598
  /**
498
599
  * Bitflags indicating the storage type of the error message.
499
600
  * This is only meaningful when `err` is non-null. When `err` is
500
- * null (indicating OK), this field is ignored (but typically 0).
501
- * - `FLAG_STATIC` (0): Error message points to static data that must not be freed.
502
- * - `FLAG_ALLOCATED` (1): Error message is heap-allocated and owned by this `ProfileStatus`.
503
- * Must be freed via [`ddog_prof_Status_drop`].
601
+ * null (indicating OK), this field SHOULD be zero. Currently, only one
602
+ * bit is used `IS_ALLOCATED_MASK`, which determines whether the error
603
+ * message is owned or statically borrowed.
604
+ * In the future, we may store error codes in here as well.
504
605
  */
505
606
  size_t flags;
506
607
  /**
507
608
  * Pointer to a null-terminated UTF-8 error message string.
508
- * - If null: indicates OK (success). Check this from C to determine if the operation
509
- * succeeded.
510
- * - If non-null and `flags == FLAG_STATIC`: points to static data with lifetime `'static`.
511
- * Must not be freed.
512
- * - If non-null and `flags == FLAG_ALLOCATED`: points to heap-allocated data owned by this
513
- * `ProfileStatus`. Must be freed by [`ddog_prof_Status_drop`].
609
+ * - If null this indicates OK (success). This is an FFI guarantee.
610
+ * - If non-null and allocated bit is clear: points to static data with `'static` lifetime.
611
+ * - If non-null and allocated bit is set: points to owned heap-allocated data.
514
612
  *
515
613
  * # Safety Invariant
516
614
  *
517
- * When non-null, `err` must point to a valid, null-terminated C
518
- * string in UTF-8 encoding. The pointer remains valid for the
519
- * lifetime of this `ProfileStatus` or until [`ddog_prof_Status_drop`]
520
- * is called.
615
+ * When non-null, `err` must point to a valid, null-terminated C string in UTF-8 encoding.
616
+ * The pointer remains valid for the lifetime of this `ProfileStatus` or until
617
+ * [`ddog_prof_Status_drop`] is called.
521
618
  */
522
619
  const char *err;
523
620
  } ddog_prof_Status;
@@ -557,27 +654,22 @@ typedef struct ddog_prof_Profile_NewResult {
557
654
  };
558
655
  } ddog_prof_Profile_NewResult;
559
656
 
560
- typedef struct ddog_prof_ValueType {
561
- ddog_CharSlice type_;
562
- ddog_CharSlice unit;
563
- } ddog_prof_ValueType;
564
-
565
- typedef struct ddog_prof_Slice_ValueType {
657
+ typedef struct ddog_prof_Slice_SampleType {
566
658
  /**
567
659
  * Should be non-null and suitably aligned for the underlying type. It is
568
660
  * allowed but not recommended for the pointer to be null when the len is
569
661
  * zero.
570
662
  */
571
- const struct ddog_prof_ValueType *ptr;
663
+ const enum ddog_prof_SampleType *ptr;
572
664
  /**
573
665
  * The number of elements (not bytes) that `.ptr` points to. Must be less
574
666
  * than or equal to [isize::MAX].
575
667
  */
576
668
  uintptr_t len;
577
- } ddog_prof_Slice_ValueType;
669
+ } ddog_prof_Slice_SampleType;
578
670
 
579
671
  typedef struct ddog_prof_Period {
580
- struct ddog_prof_ValueType type_;
672
+ enum ddog_prof_SampleType sample_type;
581
673
  int64_t value;
582
674
  } ddog_prof_Period;
583
675
 
@@ -827,6 +919,9 @@ typedef struct ddog_prof_Mapping2 {
827
919
  * performed on; it is not generally guaranteed that ids from one dictionary
828
920
  * can be used in another dictionary, even if it happens to work by
829
921
  * implementation detail.
922
+ *
923
+ * `Eq`/`Hash` and other comparisons are based on this handle value, and are
924
+ * only intended for ids produced by the same `ProfilesDictionary`.
830
925
  */
831
926
  typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
832
927
 
@@ -849,9 +944,18 @@ typedef struct ddog_prof_Function2 {
849
944
  * performed on; it is not generally guaranteed that ids from one dictionary
850
945
  * can be used in another dictionary, even if it happens to work by
851
946
  * implementation detail.
947
+ *
948
+ * `Eq`/`Hash` and other comparisons are based on this handle value, and are
949
+ * only intended for ids produced by the same `ProfilesDictionary`.
852
950
  */
853
951
  typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
854
952
 
953
+ /**
954
+ * A location keyed by `MappingId2`/`FunctionId2` handles.
955
+ *
956
+ * `Eq`/`Hash` comparisons use those handle values, so they are intended for
957
+ * data that comes from the same `ProfilesDictionary`.
958
+ */
855
959
  typedef struct ddog_prof_Location2 {
856
960
  ddog_prof_MappingId2 mapping;
857
961
  ddog_prof_FunctionId2 function;
@@ -1394,40 +1498,12 @@ typedef enum ddog_ConfigurationOrigin {
1394
1498
  DDOG_CONFIGURATION_ORIGIN_CALCULATED,
1395
1499
  } ddog_ConfigurationOrigin;
1396
1500
 
1397
- typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
1398
- DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
1399
- } ddog_TelemetryWorkerBuilderEndpointProperty;
1400
-
1401
- typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1402
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
1403
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
1404
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
1405
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
1406
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
1407
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
1408
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
1409
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
1410
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1411
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1412
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
1413
- } ddog_TelemetryWorkerBuilderStrProperty;
1414
-
1415
- typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
1416
- DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
1417
- } ddog_TelemetryWorkerBuilderBoolProperty;
1418
-
1419
1501
  typedef enum ddog_LogLevel {
1420
1502
  DDOG_LOG_LEVEL_ERROR,
1421
1503
  DDOG_LOG_LEVEL_WARN,
1422
1504
  DDOG_LOG_LEVEL_DEBUG,
1423
1505
  } ddog_LogLevel;
1424
1506
 
1425
- typedef enum ddog_MetricType {
1426
- DDOG_METRIC_TYPE_GAUGE,
1427
- DDOG_METRIC_TYPE_COUNT,
1428
- DDOG_METRIC_TYPE_DISTRIBUTION,
1429
- } ddog_MetricType;
1430
-
1431
1507
  typedef enum ddog_MetricNamespace {
1432
1508
  DDOG_METRIC_NAMESPACE_TRACERS,
1433
1509
  DDOG_METRIC_NAMESPACE_PROFILERS,
@@ -1442,6 +1518,34 @@ typedef enum ddog_MetricNamespace {
1442
1518
  DDOG_METRIC_NAMESPACE_SIDECAR,
1443
1519
  } ddog_MetricNamespace;
1444
1520
 
1521
+ typedef enum ddog_MetricType {
1522
+ DDOG_METRIC_TYPE_GAUGE,
1523
+ DDOG_METRIC_TYPE_COUNT,
1524
+ DDOG_METRIC_TYPE_DISTRIBUTION,
1525
+ } ddog_MetricType;
1526
+
1527
+ typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
1528
+ DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
1529
+ } ddog_TelemetryWorkerBuilderBoolProperty;
1530
+
1531
+ typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
1532
+ DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
1533
+ } ddog_TelemetryWorkerBuilderEndpointProperty;
1534
+
1535
+ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1536
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
1537
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
1538
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
1539
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
1540
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
1541
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
1542
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
1543
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
1544
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1545
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1546
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
1547
+ } ddog_TelemetryWorkerBuilderStrProperty;
1548
+
1445
1549
  typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
1446
1550
 
1447
1551
  /**
@@ -1719,20 +1823,6 @@ typedef struct ddog_Result_TracerMemfdHandle {
1719
1823
  };
1720
1824
  } ddog_Result_TracerMemfdHandle;
1721
1825
 
1722
- /**
1723
- * Target for standard stream output.
1724
- */
1725
- typedef enum ddog_StdTarget {
1726
- /**
1727
- * Write to standard output (stdout).
1728
- */
1729
- DDOG_STD_TARGET_OUT,
1730
- /**
1731
- * Write to standard error (stderr).
1732
- */
1733
- DDOG_STD_TARGET_ERR,
1734
- } ddog_StdTarget;
1735
-
1736
1826
  /**
1737
1827
  * Log level for filtering log events.
1738
1828
  */
@@ -1769,6 +1859,20 @@ typedef enum ddog_LogEventLevel {
1769
1859
  DDOG_LOG_EVENT_LEVEL_ERROR = 4,
1770
1860
  } ddog_LogEventLevel;
1771
1861
 
1862
+ /**
1863
+ * Target for standard stream output.
1864
+ */
1865
+ typedef enum ddog_StdTarget {
1866
+ /**
1867
+ * Write to standard output (stdout).
1868
+ */
1869
+ DDOG_STD_TARGET_OUT,
1870
+ /**
1871
+ * Write to standard error (stderr).
1872
+ */
1873
+ DDOG_STD_TARGET_ERR,
1874
+ } ddog_StdTarget;
1875
+
1772
1876
  /**
1773
1877
  * Configuration for standard stream output.
1774
1878
  */
@@ -1822,6 +1926,17 @@ typedef struct ddsketch_Handle_DDSketch {
1822
1926
  struct ddsketch_DDSketch *inner;
1823
1927
  } ddsketch_Handle_DDSketch;
1824
1928
 
1929
+ typedef enum ddog_ffe_ErrorCode {
1930
+ DDOG_FFE_ERROR_CODE_OK,
1931
+ DDOG_FFE_ERROR_CODE_TYPE_MISMATCH,
1932
+ DDOG_FFE_ERROR_CODE_PARSE_ERROR,
1933
+ DDOG_FFE_ERROR_CODE_FLAG_NOT_FOUND,
1934
+ DDOG_FFE_ERROR_CODE_TARGETING_KEY_MISSING,
1935
+ DDOG_FFE_ERROR_CODE_INVALID_CONTEXT,
1936
+ DDOG_FFE_ERROR_CODE_PROVIDER_NOT_READY,
1937
+ DDOG_FFE_ERROR_CODE_GENERAL,
1938
+ } ddog_ffe_ErrorCode;
1939
+
1825
1940
  typedef enum ddog_ffe_ExpectedFlagType {
1826
1941
  DDOG_FFE_EXPECTED_FLAG_TYPE_STRING,
1827
1942
  DDOG_FFE_EXPECTED_FLAG_TYPE_INTEGER,
@@ -1841,17 +1956,6 @@ typedef enum ddog_ffe_Reason {
1841
1956
  DDOG_FFE_REASON_ERROR,
1842
1957
  } ddog_ffe_Reason;
1843
1958
 
1844
- typedef enum ddog_ffe_ErrorCode {
1845
- DDOG_FFE_ERROR_CODE_OK,
1846
- DDOG_FFE_ERROR_CODE_TYPE_MISMATCH,
1847
- DDOG_FFE_ERROR_CODE_PARSE_ERROR,
1848
- DDOG_FFE_ERROR_CODE_FLAG_NOT_FOUND,
1849
- DDOG_FFE_ERROR_CODE_TARGETING_KEY_MISSING,
1850
- DDOG_FFE_ERROR_CODE_INVALID_CONTEXT,
1851
- DDOG_FFE_ERROR_CODE_PROVIDER_NOT_READY,
1852
- DDOG_FFE_ERROR_CODE_GENERAL,
1853
- } ddog_ffe_ErrorCode;
1854
-
1855
1959
  /**
1856
1960
  * Remote configuration for the feature flagging client. It's a central piece that defines client
1857
1961
  * behavior.
@@ -2032,28 +2136,37 @@ typedef struct ddog_ffe_AttributePair {
2032
2136
  struct ddog_ffe_AttributeValue value;
2033
2137
  } ddog_ffe_AttributePair;
2034
2138
 
2139
+ typedef enum ddog_crasht_BuildIdType {
2140
+ DDOG_CRASHT_BUILD_ID_TYPE_GNU,
2141
+ DDOG_CRASHT_BUILD_ID_TYPE_GO,
2142
+ DDOG_CRASHT_BUILD_ID_TYPE_PDB,
2143
+ DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
2144
+ } ddog_crasht_BuildIdType;
2145
+
2035
2146
  /**
2036
- * Stacktrace collection occurs in the context of a crashing process.
2037
- * If the stack is sufficiently corruputed, it is possible (but unlikely),
2038
- * for stack trace collection itself to crash.
2039
- * We recommend fully enabling stacktrace collection, but having an environment
2040
- * variable to allow downgrading the collector.
2147
+ * Result type for runtime callback registration
2041
2148
  */
2042
- typedef enum ddog_crasht_StacktraceCollection {
2043
- /**
2044
- * Stacktrace collection occurs in the
2045
- */
2046
- DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
2047
- DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
2048
- /**
2049
- * This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
2050
- * and also unwind inlined functions. Enabling this feature will not only provide symbolic
2051
- * details, but may also yield additional or less stack frames compared to other
2052
- * configurations.
2053
- */
2054
- DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
2055
- DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
2056
- } ddog_crasht_StacktraceCollection;
2149
+ typedef enum ddog_crasht_CallbackResult {
2150
+ DDOG_CRASHT_CALLBACK_RESULT_OK,
2151
+ DDOG_CRASHT_CALLBACK_RESULT_ERROR,
2152
+ } ddog_crasht_CallbackResult;
2153
+
2154
+ typedef enum ddog_crasht_DemangleOptions {
2155
+ DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
2156
+ DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
2157
+ } ddog_crasht_DemangleOptions;
2158
+
2159
+ typedef enum ddog_crasht_ErrorKind {
2160
+ DDOG_CRASHT_ERROR_KIND_PANIC,
2161
+ DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
2162
+ DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
2163
+ } ddog_crasht_ErrorKind;
2164
+
2165
+ typedef enum ddog_crasht_FileType {
2166
+ DDOG_CRASHT_FILE_TYPE_APK,
2167
+ DDOG_CRASHT_FILE_TYPE_ELF,
2168
+ DDOG_CRASHT_FILE_TYPE_PE,
2169
+ } ddog_crasht_FileType;
2057
2170
 
2058
2171
  /**
2059
2172
  * This enum represents operations a the tracked library might be engaged in.
@@ -2078,12 +2191,6 @@ typedef enum ddog_crasht_OpTypes {
2078
2191
  DDOG_CRASHT_OP_TYPES_SIZE,
2079
2192
  } ddog_crasht_OpTypes;
2080
2193
 
2081
- typedef enum ddog_crasht_ErrorKind {
2082
- DDOG_CRASHT_ERROR_KIND_PANIC,
2083
- DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
2084
- DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
2085
- } ddog_crasht_ErrorKind;
2086
-
2087
2194
  /**
2088
2195
  * See https://man7.org/linux/man-pages/man2/sigaction.2.html
2089
2196
  * MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
@@ -2156,31 +2263,25 @@ typedef enum ddog_crasht_SignalNames {
2156
2263
  DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
2157
2264
  } ddog_crasht_SignalNames;
2158
2265
 
2159
- typedef enum ddog_crasht_BuildIdType {
2160
- DDOG_CRASHT_BUILD_ID_TYPE_GNU,
2161
- DDOG_CRASHT_BUILD_ID_TYPE_GO,
2162
- DDOG_CRASHT_BUILD_ID_TYPE_PDB,
2163
- DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
2164
- } ddog_crasht_BuildIdType;
2165
-
2166
- typedef enum ddog_crasht_FileType {
2167
- DDOG_CRASHT_FILE_TYPE_APK,
2168
- DDOG_CRASHT_FILE_TYPE_ELF,
2169
- DDOG_CRASHT_FILE_TYPE_PE,
2170
- } ddog_crasht_FileType;
2171
-
2172
- typedef enum ddog_crasht_DemangleOptions {
2173
- DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
2174
- DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
2175
- } ddog_crasht_DemangleOptions;
2176
-
2177
2266
  /**
2178
- * Result type for runtime callback registration
2267
+ * Stacktrace collection occurs in the context of a crashing process.
2268
+ * If the stack is sufficiently corruputed, it is possible (but unlikely),
2269
+ * for stack trace collection itself to crash.
2270
+ * We recommend fully enabling stacktrace collection, but having an environment
2271
+ * variable to allow downgrading the collector.
2179
2272
  */
2180
- typedef enum ddog_crasht_CallbackResult {
2181
- DDOG_CRASHT_CALLBACK_RESULT_OK,
2182
- DDOG_CRASHT_CALLBACK_RESULT_ERROR,
2183
- } ddog_crasht_CallbackResult;
2273
+ typedef enum ddog_crasht_StacktraceCollection {
2274
+ DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
2275
+ DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
2276
+ /**
2277
+ * This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
2278
+ * and also unwind inlined functions. Enabling this feature will not only provide symbolic
2279
+ * details, but may also yield additional or less stack frames compared to other
2280
+ * configurations.
2281
+ */
2282
+ DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
2283
+ DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
2284
+ } ddog_crasht_StacktraceCollection;
2184
2285
 
2185
2286
  typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;
2186
2287
 
@@ -2306,6 +2407,14 @@ typedef struct ddog_crasht_Slice_CInt {
2306
2407
  uintptr_t len;
2307
2408
  } ddog_crasht_Slice_CInt;
2308
2409
 
2410
+ /**
2411
+ * Represents an object that should only be referred to by its handle.
2412
+ * Do not access its member for any reason, only use the C API functions on this struct.
2413
+ */
2414
+ typedef struct ddog_crasht_Handle_StackTrace {
2415
+ struct ddog_crasht_StackTrace *inner;
2416
+ } ddog_crasht_Handle_StackTrace;
2417
+
2309
2418
  /**
2310
2419
  * A generic result type for when an operation may fail,
2311
2420
  * or may return <T> in case of success.
@@ -2392,6 +2501,10 @@ typedef struct ddog_crasht_OsInfo {
2392
2501
 
2393
2502
  typedef struct ddog_crasht_ProcInfo {
2394
2503
  uint32_t pid;
2504
+ /**
2505
+ * Optional crashing thread id; 0 means unset.
2506
+ */
2507
+ uint32_t tid;
2395
2508
  } ddog_crasht_ProcInfo;
2396
2509
 
2397
2510
  typedef struct ddog_crasht_SigInfo {
@@ -2407,14 +2520,6 @@ typedef struct ddog_crasht_Span {
2407
2520
  ddog_CharSlice thread_name;
2408
2521
  } ddog_crasht_Span;
2409
2522
 
2410
- /**
2411
- * Represents an object that should only be referred to by its handle.
2412
- * Do not access its member for any reason, only use the C API functions on this struct.
2413
- */
2414
- typedef struct ddog_crasht_Handle_StackTrace {
2415
- struct ddog_crasht_StackTrace *inner;
2416
- } ddog_crasht_Handle_StackTrace;
2417
-
2418
2523
  typedef struct ddog_crasht_ThreadData {
2419
2524
  bool crashed;
2420
2525
  ddog_CharSlice name;
@@ -2614,6 +2719,13 @@ void ddog_endpoint_set_timeout(struct ddog_Endpoint *endpoint, uint64_t millis);
2614
2719
 
2615
2720
  void ddog_endpoint_set_test_token(struct ddog_Endpoint *endpoint, ddog_CharSlice token);
2616
2721
 
2722
+ /**
2723
+ * Set whether to use the system DNS resolver when building the reqwest client.
2724
+ * If false, the default in-process resolver is used.
2725
+ */
2726
+ void ddog_endpoint_set_use_system_resolver(struct ddog_Endpoint *endpoint,
2727
+ bool use_system_resolver);
2728
+
2617
2729
  void ddog_endpoint_drop(struct ddog_Endpoint*);
2618
2730
 
2619
2731
  struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);