libdatadog 24.0.1.1.0-aarch64-linux → 26.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/lib/libdatadog.rb +6 -0
  4. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +15538 -9137
  5. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +313 -66
  6. data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +1 -1
  7. data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +215 -57
  8. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +2 -1
  9. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  10. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  11. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +15538 -9137
  12. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +313 -66
  13. data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +1 -1
  14. data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +215 -57
  15. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +2 -1
  16. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  17. data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  18. metadata +33 -33
  19. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  20. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  21. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  22. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  23. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -0
  24. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  25. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
  26. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  27. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  28. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  29. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  30. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  31. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  32. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -0
  33. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  34. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
  35. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +0 -0
  36. /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
@@ -257,11 +257,45 @@ 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
+
264
+ #define ddog_prof_Set_SIZE_HINT (1024 * 1024)
265
+
266
+ typedef enum ddog_prof_Utf8Option {
267
+ /**
268
+ * The string is assumed to be valid UTF-8. If it's not, the behavior
269
+ * is undefined.
270
+ */
271
+ DDOG_PROF_UTF8_OPTION_ASSUME,
272
+ /**
273
+ * The string is converted to UTF-8 using lossy conversion.
274
+ */
275
+ DDOG_PROF_UTF8_OPTION_CONVERT_LOSSY,
276
+ /**
277
+ * The string is validated to be UTF-8. If it's not, an error is
278
+ * returned.
279
+ */
280
+ DDOG_PROF_UTF8_OPTION_VALIDATE,
281
+ } ddog_prof_Utf8Option;
282
+
283
+ typedef struct ddog_OpaqueCancellationToken ddog_OpaqueCancellationToken;
284
+
260
285
  typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
261
286
 
262
287
  typedef struct ddog_prof_Exporter ddog_prof_Exporter;
263
288
 
264
- typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
289
+ /**
290
+ * `ProfilesDictionary` contains data which are common to multiple profiles,
291
+ * whether that's multiple profiles simultaneously or multiple profiles
292
+ * through time.
293
+ *
294
+ * The current implementation is thread-safe, though there has been some
295
+ * discussion about making that optional, as some libraries will call these
296
+ * APIs in places where a mutex is already employed.
297
+ */
298
+ typedef struct ddog_prof_ProfilesDictionary ddog_prof_ProfilesDictionary;
265
299
 
266
300
  typedef struct ddog_Slice_U8 {
267
301
  /**
@@ -307,17 +341,21 @@ typedef enum ddog_prof_Endpoint_Tag {
307
341
  DDOG_PROF_ENDPOINT_FILE,
308
342
  } ddog_prof_Endpoint_Tag;
309
343
 
344
+ typedef struct ddog_prof_Endpoint_ddog_prof_Agent_Body {
345
+ ddog_CharSlice _0;
346
+ uint64_t _1;
347
+ } ddog_prof_Endpoint_ddog_prof_Agent_Body;
348
+
310
349
  typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
311
350
  ddog_CharSlice _0;
312
351
  ddog_CharSlice _1;
352
+ uint64_t _2;
313
353
  } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
314
354
 
315
355
  typedef struct ddog_prof_Endpoint {
316
356
  ddog_prof_Endpoint_Tag tag;
317
357
  union {
318
- struct {
319
- ddog_CharSlice agent;
320
- };
358
+ ddog_prof_Endpoint_ddog_prof_Agent_Body AGENT;
321
359
  ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
322
360
  struct {
323
361
  ddog_CharSlice file;
@@ -354,61 +392,6 @@ typedef struct ddog_prof_ProfileExporter_Result {
354
392
  };
355
393
  } ddog_prof_ProfileExporter_Result;
356
394
 
357
- /**
358
- * A generic result type for when an operation may fail,
359
- * but there's nothing to return in the case of success.
360
- */
361
- typedef enum ddog_VoidResult_Tag {
362
- DDOG_VOID_RESULT_OK,
363
- DDOG_VOID_RESULT_ERR,
364
- } ddog_VoidResult_Tag;
365
-
366
- typedef struct ddog_VoidResult {
367
- ddog_VoidResult_Tag tag;
368
- union {
369
- struct {
370
- struct ddog_Error err;
371
- };
372
- };
373
- } ddog_VoidResult;
374
-
375
- /**
376
- * Represents an object that should only be referred to by its handle.
377
- * Do not access its member for any reason, only use the C API functions on this struct.
378
- */
379
- typedef struct ddog_prof_Request {
380
- struct ddog_prof_Exporter_Request *inner;
381
- } ddog_prof_Request;
382
-
383
- /**
384
- * A generic result type for when an operation may fail,
385
- * or may return <T> in case of success.
386
- */
387
- typedef enum ddog_prof_Request_Result_Tag {
388
- DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
389
- DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
390
- } ddog_prof_Request_Result_Tag;
391
-
392
- typedef struct ddog_prof_Request_Result {
393
- ddog_prof_Request_Result_Tag tag;
394
- union {
395
- struct {
396
- struct ddog_prof_Request ok;
397
- };
398
- struct {
399
- struct ddog_Error err;
400
- };
401
- };
402
- } ddog_prof_Request_Result;
403
-
404
- /**
405
- * Represents an object that should only be referred to by its handle.
406
- * Do not access its member for any reason, only use the C API functions on this struct.
407
- */
408
- typedef struct ddog_prof_EncodedProfile {
409
- struct ddog_prof_EncodedProfile *inner;
410
- } ddog_prof_EncodedProfile;
411
-
412
395
  typedef struct ddog_HttpStatus {
413
396
  uint16_t code;
414
397
  } ddog_HttpStatus;
@@ -434,6 +417,14 @@ typedef struct ddog_prof_Result_HttpStatus {
434
417
  };
435
418
  } ddog_prof_Result_HttpStatus;
436
419
 
420
+ /**
421
+ * Represents an object that should only be referred to by its handle.
422
+ * Do not access its member for any reason, only use the C API functions on this struct.
423
+ */
424
+ typedef struct ddog_prof_EncodedProfile {
425
+ struct ddog_prof_EncodedProfile *inner;
426
+ } ddog_prof_EncodedProfile;
427
+
437
428
  typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
438
429
 
439
430
  /**
@@ -444,6 +435,53 @@ typedef struct ddog_CancellationToken {
444
435
  ddog_prof_TokioCancellationToken *inner;
445
436
  } ddog_CancellationToken;
446
437
 
438
+ /**
439
+ * Represents the result of an operation that either succeeds with no value, or fails with an
440
+ * error message. This is like `Result<(), Cow<'static, CStr>` except its representation is
441
+ * smaller, and is FFI-stable.
442
+ *
443
+ * The OK status is guaranteed to have a representation of `{ 0, null }`.
444
+ *
445
+ * # Ownership
446
+ *
447
+ * A `ProfileStatus` owns its error message data. When a `ProfileStatus` with an error is
448
+ * created, it takes ownership of the error string (either as a static reference or heap
449
+ * allocation). The caller is responsible for eventually calling [`ddog_prof_Status_drop`] to
450
+ * free any heap-allocated memory. This is safe to call on OK as well.
451
+ *
452
+ * # FFI Safety
453
+ *
454
+ * This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat the
455
+ * `.flags` as opaque and use API functions; the `.err` field is guaranteed to be null when the
456
+ * `ProfileStatus` is OK, and on Err it will be non-null pointer to a UTF8 encoded string which
457
+ * has a null terminator.
458
+ */
459
+ typedef struct ddog_prof_Status {
460
+ /**
461
+ * Bitflags indicating the storage type of the error message.
462
+ * This is only meaningful when `err` is non-null. When `err` is
463
+ * null (indicating OK), this field SHOULD be zero. Currently, only one
464
+ * bit is used `IS_ALLOCATED_MASK`, which determines whether the error
465
+ * message is owned or statically borrowed.
466
+ * In the future, we may store error codes in here as well.
467
+ */
468
+ size_t flags;
469
+ /**
470
+ * Pointer to a null-terminated UTF-8 error message string.
471
+ * - If null this indicates OK (success). This is an FFI guarantee.
472
+ * - If non-null and allocated bit is clear: points to static data with `'static` lifetime.
473
+ * - If non-null and allocated bit is set: points to owned heap-allocated data.
474
+ *
475
+ * # Safety Invariant
476
+ *
477
+ * When non-null, `err` must point to a valid, null-terminated C string in UTF-8 encoding.
478
+ * The pointer remains valid for the lifetime of this `ProfileStatus` or until
479
+ * [`ddog_prof_Status_drop`] is called.
480
+ */
481
+ const char *err;
482
+ } ddog_prof_Status;
483
+ #define ddog_prof_Status_OK (ddog_prof_Status){ .flags = 0, .err = (ddog_prof_null){ } }
484
+
447
485
  /**
448
486
  * Represents a profile. Do not access its member for any reason, only use
449
487
  * the C API functions on this struct.
@@ -502,6 +540,23 @@ typedef struct ddog_prof_Period {
502
540
  int64_t value;
503
541
  } ddog_prof_Period;
504
542
 
543
+ /**
544
+ * Opaque FFI handle to an `Arc<T>`'s inner `T`.
545
+ *
546
+ * Safety rules for implementors/callers:
547
+ * - Do not create multiple owning `Arc<T>`s from the same raw pointer.
548
+ * - Always restore the original `Arc` with `into_raw` after any `from_raw`.
549
+ * - Use `as_inner()` to validate non-null before performing raw round-trips.
550
+ *
551
+ * From Rust, use [`ArcHandle::try_clone`] to make a reference-counted copy.
552
+ * From the C FFI, the handle should probably be renamed to avoid generics
553
+ * bloat garbage, and a *_try_clone API should be provided.
554
+ *
555
+ * Use [`ArcHandle::drop_resource`] to drop the resource and move this handle
556
+ * into the empty handle state, which is the default state.
557
+ */
558
+ typedef struct ddog_prof_ProfilesDictionary *ddog_prof_ProfilesDictionaryHandle;
559
+
505
560
  typedef struct ddog_prof_ManagedStringStorage {
506
561
  const void *inner;
507
562
  } ddog_prof_ManagedStringStorage;
@@ -685,6 +740,159 @@ typedef struct ddog_prof_Sample {
685
740
  struct ddog_prof_Slice_Label labels;
686
741
  } ddog_prof_Sample;
687
742
 
743
+ /**
744
+ * Represents what StringIds point to. Its definition is intentionally
745
+ * obscured; the actual layout is being hidden. This is here so that
746
+ * cbindgen will generate a unique type as opposed to relying on `void *` or
747
+ * similar. We want StringId2, FunctionId2, and MappingId2 to all point to
748
+ * unique so that compilers will distinguish between them and provide some
749
+ * type safety.
750
+ */
751
+ typedef struct ddog_prof_StringHeader {
752
+ uint8_t _0;
753
+ } ddog_prof_StringHeader;
754
+
755
+ /**
756
+ * An FFI-safe string ID where a null StringId2 maps to `StringRef::EMPTY`.
757
+ * The representation is ensured to be a pointer for ABI stability, but
758
+ * callers should not generally dereference this pointer. When using the id,
759
+ * the caller needs to be sure that the `ProfilesDictionary` or string set it
760
+ * refers to is the same one that the operations are performed on; it is not
761
+ * generally guaranteed that ids from one dictionary/set can be used in
762
+ * another, even if it happens to work by implementation detail. There is an
763
+ * exception is for well-known strings, which are considered present in every
764
+ * string set.
765
+ */
766
+ typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
767
+
768
+ /**
769
+ * An FFI-safe version of the Mapping which allows null. Be sure to maintain
770
+ * layout-compatibility with it, except that StringId2 may be null.
771
+ */
772
+ typedef struct ddog_prof_Mapping2 {
773
+ uint64_t memory_start;
774
+ uint64_t memory_limit;
775
+ uint64_t file_offset;
776
+ ddog_prof_StringId2 filename;
777
+ ddog_prof_StringId2 build_id;
778
+ } ddog_prof_Mapping2;
779
+
780
+ /**
781
+ * An FFI-safe representation of a "handle" to a mapping which has been
782
+ * stored in the `ProfilesDictionary`. The representation is ensured to be a
783
+ * pointer for ABI stability, but callers should not generally dereference
784
+ * this pointer. When using the id, the caller needs to be sure that the
785
+ * `ProfilesDictionary` it refers to is the same one that the operations are
786
+ * performed on; it is not generally guaranteed that ids from one dictionary
787
+ * can be used in another dictionary, even if it happens to work by
788
+ * implementation detail.
789
+ */
790
+ typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
791
+
792
+ /**
793
+ * An FFI-safe version of the Function which allows null. Be sure to maintain
794
+ * layout-compatibility with it, except that StringId2 may be null.
795
+ */
796
+ typedef struct ddog_prof_Function2 {
797
+ ddog_prof_StringId2 name;
798
+ ddog_prof_StringId2 system_name;
799
+ ddog_prof_StringId2 file_name;
800
+ } ddog_prof_Function2;
801
+
802
+ /**
803
+ * An FFI-safe representation of a "handle" to a function which has been
804
+ * stored in the `ProfilesDictionary`. The representation is ensured to be a
805
+ * pointer for ABI stability, but callers should not generally dereference
806
+ * this pointer. When using the id, the caller needs to be sure that the
807
+ * `ProfilesDictionary` it refers to is the same one that the operations are
808
+ * performed on; it is not generally guaranteed that ids from one dictionary
809
+ * can be used in another dictionary, even if it happens to work by
810
+ * implementation detail.
811
+ */
812
+ typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
813
+
814
+ typedef struct ddog_prof_Location2 {
815
+ ddog_prof_MappingId2 mapping;
816
+ ddog_prof_FunctionId2 function;
817
+ /**
818
+ * The instruction address for this location, if available. It
819
+ * should be within [Mapping.memory_start...Mapping.memory_limit]
820
+ * for the corresponding mapping. A non-leaf address may be in the
821
+ * middle of a call instruction. It is up to display tools to find
822
+ * the beginning of the instruction if necessary.
823
+ */
824
+ uint64_t address;
825
+ int64_t line;
826
+ } ddog_prof_Location2;
827
+
828
+ typedef struct ddog_prof_Slice_Location2 {
829
+ /**
830
+ * Should be non-null and suitably aligned for the underlying type. It is
831
+ * allowed but not recommended for the pointer to be null when the len is
832
+ * zero.
833
+ */
834
+ const struct ddog_prof_Location2 *ptr;
835
+ /**
836
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
837
+ * than or equal to [isize::MAX].
838
+ */
839
+ uintptr_t len;
840
+ } ddog_prof_Slice_Location2;
841
+
842
+ typedef struct ddog_prof_Label2 {
843
+ ddog_prof_StringId2 key;
844
+ /**
845
+ * At most one of `.str` and `.num` should not be empty.
846
+ */
847
+ ddog_CharSlice str;
848
+ int64_t num;
849
+ /**
850
+ * Should only be present when num is present.
851
+ * Specifies the units of num.
852
+ * Use arbitrary string (for example, "requests") as a custom count unit.
853
+ * If no unit is specified, consumer may apply heuristic to deduce the unit.
854
+ * Consumers may also interpret units like "bytes" and "kilobytes" as memory
855
+ * units and units like "seconds" and "nanoseconds" as time units,
856
+ * and apply appropriate unit conversions to these.
857
+ */
858
+ ddog_CharSlice num_unit;
859
+ } ddog_prof_Label2;
860
+
861
+ typedef struct ddog_prof_Slice_Label2 {
862
+ /**
863
+ * Should be non-null and suitably aligned for the underlying type. It is
864
+ * allowed but not recommended for the pointer to be null when the len is
865
+ * zero.
866
+ */
867
+ const struct ddog_prof_Label2 *ptr;
868
+ /**
869
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
870
+ * than or equal to [isize::MAX].
871
+ */
872
+ uintptr_t len;
873
+ } ddog_prof_Slice_Label2;
874
+
875
+ typedef struct ddog_prof_Sample2 {
876
+ /**
877
+ * The leaf is at locations[0].
878
+ */
879
+ struct ddog_prof_Slice_Location2 locations;
880
+ /**
881
+ * The type and unit of each value is defined by the corresponding
882
+ * entry in Profile.sample_type. All samples must have the same
883
+ * number of values, the same as the length of Profile.sample_type.
884
+ * When aggregating multiple samples into a single sample, the
885
+ * result has a list of values that is the element-wise sum of the
886
+ * lists of the originals.
887
+ */
888
+ struct ddog_Slice_I64 values;
889
+ /**
890
+ * label includes additional context for this sample. It can include
891
+ * things like a thread id, allocation size, etc
892
+ */
893
+ struct ddog_prof_Slice_Label2 labels;
894
+ } ddog_prof_Sample2;
895
+
688
896
  typedef struct ddog_prof_Slice_Usize {
689
897
  /**
690
898
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -937,6 +1145,24 @@ typedef struct ddog_prof_StringId_Result {
937
1145
  };
938
1146
  } ddog_prof_StringId_Result;
939
1147
 
1148
+ /**
1149
+ * A generic result type for when an operation may fail,
1150
+ * but there's nothing to return in the case of success.
1151
+ */
1152
+ typedef enum ddog_VoidResult_Tag {
1153
+ DDOG_VOID_RESULT_OK,
1154
+ DDOG_VOID_RESULT_ERR,
1155
+ } ddog_VoidResult_Tag;
1156
+
1157
+ typedef struct ddog_VoidResult {
1158
+ ddog_VoidResult_Tag tag;
1159
+ union {
1160
+ struct {
1161
+ struct ddog_Error err;
1162
+ };
1163
+ };
1164
+ } ddog_VoidResult;
1165
+
940
1166
  typedef struct ddog_prof_Slice_ManagedStringId {
941
1167
  /**
942
1168
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -1142,6 +1368,7 @@ typedef enum ddog_ConfigurationOrigin {
1142
1368
  DDOG_CONFIGURATION_ORIGIN_DEFAULT,
1143
1369
  DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
1144
1370
  DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
1371
+ DDOG_CONFIGURATION_ORIGIN_CALCULATED,
1145
1372
  } ddog_ConfigurationOrigin;
1146
1373
 
1147
1374
  typedef enum ddog_LogLevel {
@@ -1205,6 +1432,20 @@ typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
1205
1432
  */
1206
1433
  typedef struct ddog_TelemetryWorkerHandle ddog_TelemetryWorkerHandle;
1207
1434
 
1435
+ typedef enum ddog_Option_U64_Tag {
1436
+ DDOG_OPTION_U64_SOME_U64,
1437
+ DDOG_OPTION_U64_NONE_U64,
1438
+ } ddog_Option_U64_Tag;
1439
+
1440
+ typedef struct ddog_Option_U64 {
1441
+ ddog_Option_U64_Tag tag;
1442
+ union {
1443
+ struct {
1444
+ uint64_t some;
1445
+ };
1446
+ };
1447
+ } ddog_Option_U64;
1448
+
1208
1449
  typedef enum ddog_Option_Bool_Tag {
1209
1450
  DDOG_OPTION_BOOL_SOME_BOOL,
1210
1451
  DDOG_OPTION_BOOL_NONE_BOOL,
@@ -2096,13 +2337,17 @@ typedef struct ddog_crasht_CrashInfoBuilder_NewResult {
2096
2337
  };
2097
2338
  } ddog_crasht_CrashInfoBuilder_NewResult;
2098
2339
 
2099
- typedef enum ddog_crasht_CrashInfo_NewResult_Tag {
2100
- DDOG_CRASHT_CRASH_INFO_NEW_RESULT_OK,
2101
- DDOG_CRASHT_CRASH_INFO_NEW_RESULT_ERR,
2102
- } ddog_crasht_CrashInfo_NewResult_Tag;
2340
+ /**
2341
+ * A generic result type for when an operation may fail,
2342
+ * or may return <T> in case of success.
2343
+ */
2344
+ typedef enum ddog_crasht_Result_HandleCrashInfo_Tag {
2345
+ DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_OK_HANDLE_CRASH_INFO,
2346
+ DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_ERR_HANDLE_CRASH_INFO,
2347
+ } ddog_crasht_Result_HandleCrashInfo_Tag;
2103
2348
 
2104
- typedef struct ddog_crasht_CrashInfo_NewResult {
2105
- ddog_crasht_CrashInfo_NewResult_Tag tag;
2349
+ typedef struct ddog_crasht_Result_HandleCrashInfo {
2350
+ ddog_crasht_Result_HandleCrashInfo_Tag tag;
2106
2351
  union {
2107
2352
  struct {
2108
2353
  struct ddog_crasht_Handle_CrashInfo ok;
@@ -2111,7 +2356,9 @@ typedef struct ddog_crasht_CrashInfo_NewResult {
2111
2356
  struct ddog_Error err;
2112
2357
  };
2113
2358
  };
2114
- } ddog_crasht_CrashInfo_NewResult;
2359
+ } ddog_crasht_Result_HandleCrashInfo;
2360
+
2361
+ typedef struct ddog_crasht_Result_HandleCrashInfo ddog_crasht_CrashInfo_NewResult;
2115
2362
 
2116
2363
  typedef struct ddog_crasht_OsInfo {
2117
2364
  ddog_CharSlice architecture;
@@ -451,7 +451,7 @@ void ddog_crasht_CrashInfoBuilder_drop(struct ddog_crasht_Handle_CrashInfoBuilde
451
451
  * which has not previously been dropped.
452
452
  */
453
453
  DDOG_CHECK_RETURN
454
- struct ddog_crasht_CrashInfo_NewResult ddog_crasht_CrashInfoBuilder_build(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
454
+ ddog_crasht_CrashInfo_NewResult ddog_crasht_CrashInfoBuilder_build(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
455
455
 
456
456
  /**
457
457
  * # Safety