-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathbindings-linux-aarch64-R4.3.rs
More file actions
3212 lines (3210 loc) · 126 KB
/
bindings-linux-aarch64-R4.3.rs
File metadata and controls
3212 lines (3210 loc) · 126 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* automatically generated by rust-bindgen 0.69.4 */
/* libR-sys version: 0.7.0 */
/* bindgen clang version: Ubuntu clang version 15.0.7 */
/* r version: 4.3.3 */
#[repr(C)]
#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
pub struct __BindgenBitfieldUnit<Storage> {
storage: Storage,
}
impl<Storage> __BindgenBitfieldUnit<Storage> {
#[inline]
pub const fn new(storage: Storage) -> Self {
Self { storage }
}
}
impl<Storage> __BindgenBitfieldUnit<Storage>
where
Storage: AsRef<[u8]> + AsMut<[u8]>,
{
#[inline]
pub fn get_bit(&self, index: usize) -> bool {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = self.storage.as_ref()[byte_index];
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
byte & mask == mask
}
#[inline]
pub fn set_bit(&mut self, index: usize, val: bool) {
debug_assert!(index / 8 < self.storage.as_ref().len());
let byte_index = index / 8;
let byte = &mut self.storage.as_mut()[byte_index];
let bit_index = if cfg!(target_endian = "big") {
7 - (index % 8)
} else {
index % 8
};
let mask = 1 << bit_index;
if val {
*byte |= mask;
} else {
*byte &= !mask;
}
}
#[inline]
pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
let mut val = 0;
for i in 0..(bit_width as usize) {
if self.get_bit(i + bit_offset) {
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
val |= 1 << index;
}
}
val
}
#[inline]
pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
debug_assert!(bit_width <= 64);
debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
for i in 0..(bit_width as usize) {
let mask = 1 << i;
let val_bit_is_set = val & mask == mask;
let index = if cfg!(target_endian = "big") {
bit_width as usize - 1 - i
} else {
i
};
self.set_bit(index + bit_offset, val_bit_is_set);
}
}
}
pub const SINGLESXP: u32 = 302;
pub const HAVE_F77_UNDERSCORE: u32 = 1;
pub const IEEE_754: u32 = 1;
pub const HAVE_VISIBILITY_ATTRIBUTE: u32 = 1;
pub const SUPPORT_UTF8: u32 = 1;
pub const SUPPORT_MBCS: u32 = 1;
pub const ENABLE_NLS: u32 = 1;
pub const PR18534fixed: u32 = 1;
pub const SIZEOF_SIZE_T: u32 = 8;
pub const HAVE_ALLOCA_H: u32 = 1;
pub const HAVE_UINTPTR_T: u32 = 1;
pub const R_XLEN_T_MAX: u64 = 4503599627370496;
pub const R_SHORT_LEN_MAX: u32 = 2147483647;
pub const TYPE_BITS: u32 = 5;
pub const MAX_NUM_SEXPTYPE: u32 = 32;
pub const NAMEDMAX: u32 = 7;
pub const R_XDR_DOUBLE_SIZE: u32 = 8;
pub const R_XDR_INTEGER_SIZE: u32 = 4;
pub const R_CODESET_MAX: u32 = 63;
pub const IDENT_NUM_AS_BITS: u32 = 1;
pub const IDENT_NA_AS_BITS: u32 = 2;
pub const IDENT_ATTR_BY_ORDER: u32 = 4;
pub const IDENT_USE_BYTECODE: u32 = 8;
pub const IDENT_USE_CLOENV: u32 = 16;
pub const IDENT_USE_SRCREF: u32 = 32;
pub const IDENT_EXTPTR_AS_REF: u32 = 64;
pub const HT_TYPE_IDENTICAL: u32 = 0;
pub const HT_TYPE_ADDRESS: u32 = 1;
pub const RSTART_VERSION: u32 = 1;
pub const __STDC_WANT_IEC_60559_FUNCS_EXT__: u32 = 1;
pub const R_VERSION_STRING: &[u8; 6] = b"4.3.3\0";
pub const HAVE_EXPM1: u32 = 1;
pub const HAVE_HYPOT: u32 = 1;
pub const HAVE_LOG1P: u32 = 1;
pub const HAVE_WORKING_LOG1P: u32 = 1;
pub const M_SQRT_3: f64 = 1.7320508075688772;
pub const M_SQRT_32: f64 = 5.656854249492381;
pub const M_SQRT_PI: f64 = 1.772453850905516;
pub const M_1_SQRT_2PI: f64 = 0.3989422804014327;
pub const M_SQRT_2dPI: f64 = 0.7978845608028654;
pub const M_LN_2PI: f64 = 1.8378770664093456;
pub const M_LN_SQRT_PI: f64 = 0.5723649429247001;
pub const M_LN_SQRT_2PI: f64 = 0.9189385332046728;
pub const M_LN_SQRT_PId2: f64 = 0.22579135264472744;
pub const R_VERSION: u32 = 262915;
pub const R_NICK: &[u8; 16] = b"Angel Food Cake\0";
pub const R_MAJOR: &[u8; 2] = b"4\0";
pub const R_MINOR: &[u8; 4] = b"3.3\0";
pub const R_STATUS: &[u8; 1] = b"\0";
pub const R_YEAR: &[u8; 5] = b"2024\0";
pub const R_MONTH: &[u8; 3] = b"02\0";
pub const R_DAY: &[u8; 3] = b"29\0";
pub const R_SVN_REVISION: u32 = 86002;
pub const R_GE_definitions: u32 = 13;
pub const R_GE_deviceClip: u32 = 14;
pub const R_GE_group: u32 = 15;
pub const R_GE_glyphs: u32 = 16;
pub const R_GE_version: u32 = 16;
pub const MAX_GRAPHICS_SYSTEMS: u32 = 24;
pub const R_USE_PROTOTYPES: u32 = 1;
pub const leftButton: u32 = 1;
pub const middleButton: u32 = 2;
pub const rightButton: u32 = 4;
pub const LTY_BLANK: i32 = -1;
pub const LTY_SOLID: u32 = 0;
pub const LTY_DASHED: u32 = 68;
pub const LTY_DOTTED: u32 = 49;
pub const LTY_DOTDASH: u32 = 13361;
pub const LTY_LONGDASH: u32 = 55;
pub const LTY_TWODASH: u32 = 9762;
pub const DEG2RAD: f64 = 0.017453292519943295;
pub const R_GE_linearGradientPattern: u32 = 1;
pub const R_GE_radialGradientPattern: u32 = 2;
pub const R_GE_tilingPattern: u32 = 3;
pub const R_GE_patternExtendPad: u32 = 1;
pub const R_GE_patternExtendRepeat: u32 = 2;
pub const R_GE_patternExtendReflect: u32 = 3;
pub const R_GE_patternExtendNone: u32 = 4;
pub const R_GE_compositeClear: u32 = 1;
pub const R_GE_compositeSource: u32 = 2;
pub const R_GE_compositeOver: u32 = 3;
pub const R_GE_compositeIn: u32 = 4;
pub const R_GE_compositeOut: u32 = 5;
pub const R_GE_compositeAtop: u32 = 6;
pub const R_GE_compositeDest: u32 = 7;
pub const R_GE_compositeDestOver: u32 = 8;
pub const R_GE_compositeDestIn: u32 = 9;
pub const R_GE_compositeDestOut: u32 = 10;
pub const R_GE_compositeDestAtop: u32 = 11;
pub const R_GE_compositeXor: u32 = 12;
pub const R_GE_compositeAdd: u32 = 13;
pub const R_GE_compositeSaturate: u32 = 14;
pub const R_GE_compositeMultiply: u32 = 15;
pub const R_GE_compositeScreen: u32 = 16;
pub const R_GE_compositeOverlay: u32 = 17;
pub const R_GE_compositeDarken: u32 = 18;
pub const R_GE_compositeLighten: u32 = 19;
pub const R_GE_compositeColorDodge: u32 = 20;
pub const R_GE_compositeColorBurn: u32 = 21;
pub const R_GE_compositeHardLight: u32 = 22;
pub const R_GE_compositeSoftLight: u32 = 23;
pub const R_GE_compositeDifference: u32 = 24;
pub const R_GE_compositeExclusion: u32 = 25;
pub const R_GE_nonZeroWindingRule: u32 = 1;
pub const R_GE_evenOddRule: u32 = 2;
pub const R_GE_alphaMask: u32 = 1;
pub const R_GE_luminanceMask: u32 = 2;
pub const R_GE_capability_semiTransparency: u32 = 0;
pub const R_GE_capability_transparentBackground: u32 = 1;
pub const R_GE_capability_rasterImage: u32 = 2;
pub const R_GE_capability_capture: u32 = 3;
pub const R_GE_capability_locator: u32 = 4;
pub const R_GE_capability_events: u32 = 5;
pub const R_GE_capability_patterns: u32 = 6;
pub const R_GE_capability_clippingPaths: u32 = 7;
pub const R_GE_capability_masks: u32 = 8;
pub const R_GE_capability_compositing: u32 = 9;
pub const R_GE_capability_transformations: u32 = 10;
pub const R_GE_capability_paths: u32 = 11;
pub const R_GE_capability_glyphs: u32 = 12;
pub const R_GE_text_style_normal: u32 = 1;
pub const R_GE_text_style_italic: u32 = 2;
pub const R_GE_text_style_oblique: u32 = 3;
#[doc = "R_xlen_t is defined as int on 32-bit platforms, and\n that confuses Rust. Keeping it always as ptrdiff_t works\n fine even on 32-bit.\n <div rustbindgen replaces=\"R_xlen_t\"></div>"]
pub type R_xlen_t = isize;
pub type va_list = [u64; 4usize];
pub type __off_t = ::std::os::raw::c_long;
pub type __off64_t = ::std::os::raw::c_long;
pub type FILE = _IO_FILE;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_marker {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_codecvt {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_wide_data {
_unused: [u8; 0],
}
pub type _IO_lock_t = ::std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _IO_FILE {
pub _flags: ::std::os::raw::c_int,
pub _IO_read_ptr: *mut ::std::os::raw::c_char,
pub _IO_read_end: *mut ::std::os::raw::c_char,
pub _IO_read_base: *mut ::std::os::raw::c_char,
pub _IO_write_base: *mut ::std::os::raw::c_char,
pub _IO_write_ptr: *mut ::std::os::raw::c_char,
pub _IO_write_end: *mut ::std::os::raw::c_char,
pub _IO_buf_base: *mut ::std::os::raw::c_char,
pub _IO_buf_end: *mut ::std::os::raw::c_char,
pub _IO_save_base: *mut ::std::os::raw::c_char,
pub _IO_backup_base: *mut ::std::os::raw::c_char,
pub _IO_save_end: *mut ::std::os::raw::c_char,
pub _markers: *mut _IO_marker,
pub _chain: *mut _IO_FILE,
pub _fileno: ::std::os::raw::c_int,
pub _flags2: ::std::os::raw::c_int,
pub _old_offset: __off_t,
pub _cur_column: ::std::os::raw::c_ushort,
pub _vtable_offset: ::std::os::raw::c_schar,
pub _shortbuf: [::std::os::raw::c_char; 1usize],
pub _lock: *mut _IO_lock_t,
pub _offset: __off64_t,
pub _codecvt: *mut _IO_codecvt,
pub _wide_data: *mut _IO_wide_data,
pub _freeres_list: *mut _IO_FILE,
pub _freeres_buf: *mut ::std::os::raw::c_void,
pub __pad5: usize,
pub _mode: ::std::os::raw::c_int,
pub _unused2: [::std::os::raw::c_char; 20usize],
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum Rboolean {
#[doc = ", MAYBE"]
FALSE = 0,
#[doc = ", MAYBE"]
TRUE = 1,
}
#[doc = "Called with a variable argument set after casting to a compatible\nfunction pointer."]
pub type DL_FUNC = ::std::option::Option<unsafe extern "C" fn() -> *mut ::std::os::raw::c_void>;
pub type R_NativePrimitiveArgType = ::std::os::raw::c_uint;
#[doc = "These are very similar to those in Rdynpriv.h,\nbut we maintain them separately to give us more freedom to do\nsome computations on the internal versions that are derived from\nthese definitions."]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_CMethodDef {
pub name: *const ::std::os::raw::c_char,
pub fun: DL_FUNC,
pub numArgs: ::std::os::raw::c_int,
pub types: *mut R_NativePrimitiveArgType,
}
#[doc = "These are very similar to those in Rdynpriv.h,\nbut we maintain them separately to give us more freedom to do\nsome computations on the internal versions that are derived from\nthese definitions."]
pub type R_FortranMethodDef = R_CMethodDef;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_CallMethodDef {
pub name: *const ::std::os::raw::c_char,
pub fun: DL_FUNC,
pub numArgs: ::std::os::raw::c_int,
}
pub type R_ExternalMethodDef = R_CallMethodDef;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DllInfo {
_unused: [u8; 0],
}
pub type DllInfo = _DllInfo;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Rf_RegisteredNativeSymbol {
_unused: [u8; 0],
}
pub type R_RegisteredNativeSymbol = Rf_RegisteredNativeSymbol;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum NativeSymbolType {
R_ANY_SYM = 0,
R_C_SYM = 1,
R_CALL_SYM = 2,
R_FORTRAN_SYM = 3,
R_EXTERNAL_SYM = 4,
}
pub type Rbyte = ::std::os::raw::c_uchar;
#[doc = "type for length of (standard, not long) vectors etc"]
pub type R_len_t = ::std::os::raw::c_int;
#[repr(u32)]
#[doc = "------ enum_SEXPTYPE -----"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum SEXPTYPE {
#[doc = "nil = NULL"]
NILSXP = 0,
#[doc = "symbols"]
SYMSXP = 1,
#[doc = "lists of dotted pairs"]
LISTSXP = 2,
#[doc = "closures"]
CLOSXP = 3,
#[doc = "environments"]
ENVSXP = 4,
#[doc = "promises: \\[un\\]evaluated closure arguments"]
PROMSXP = 5,
#[doc = "language constructs (special lists)"]
LANGSXP = 6,
#[doc = "special forms"]
SPECIALSXP = 7,
#[doc = "builtin non-special forms"]
BUILTINSXP = 8,
#[doc = "\"scalar\" string type (internal only)"]
CHARSXP = 9,
#[doc = "logical vectors"]
LGLSXP = 10,
#[doc = "integer vectors"]
INTSXP = 13,
#[doc = "real variables"]
REALSXP = 14,
#[doc = "complex variables"]
CPLXSXP = 15,
#[doc = "string vectors"]
STRSXP = 16,
#[doc = "dot-dot-dot object"]
DOTSXP = 17,
#[doc = "make \"any\" args work"]
ANYSXP = 18,
#[doc = "generic vectors"]
VECSXP = 19,
#[doc = "expressions vectors"]
EXPRSXP = 20,
#[doc = "byte code"]
BCODESXP = 21,
#[doc = "external pointer"]
EXTPTRSXP = 22,
#[doc = "weak reference"]
WEAKREFSXP = 23,
#[doc = "raw bytes"]
RAWSXP = 24,
#[doc = "S4 non-vector"]
S4SXP = 25,
#[doc = "fresh node created in new page"]
NEWSXP = 30,
#[doc = "node released by GC"]
FREESXP = 31,
#[doc = "Closure or Builtin"]
FUNSXP = 99,
}
pub type SEXP = *mut SEXPREC;
#[doc = "We sometimes need to coerce a protected value and place the new\ncoerced value under protection. For these cases PROTECT_WITH_INDEX\nsaves an index of the protection location that can be used to\nreplace the protected value using REPROTECT."]
pub type PROTECT_INDEX = ::std::os::raw::c_int;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_allocator {
_unused: [u8; 0],
}
pub type R_allocator_t = R_allocator;
#[repr(u32)]
#[doc = "../main/character.c :"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum nchar_type {
Bytes = 0,
Chars = 1,
Width = 2,
}
#[repr(u32)]
#[doc = "cetype_t is an identifier reseved by POSIX, but it is\nwell established as public. Could remap by a #define though"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum cetype_t {
CE_NATIVE = 0,
CE_UTF8 = 1,
CE_LATIN1 = 2,
CE_BYTES = 3,
CE_SYMBOL = 5,
CE_ANY = 99,
}
#[doc = "Finalization interface"]
pub type R_CFinalizer_t = ::std::option::Option<unsafe extern "C" fn(arg1: SEXP)>;
pub type R_pstream_data_t = *mut ::std::os::raw::c_void;
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum R_pstream_format_t {
R_pstream_any_format = 0,
R_pstream_ascii_format = 1,
R_pstream_binary_format = 2,
R_pstream_xdr_format = 3,
R_pstream_asciihex_format = 4,
}
pub type R_outpstream_t = *mut R_outpstream_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_outpstream_st {
pub data: R_pstream_data_t,
pub type_: R_pstream_format_t,
pub version: ::std::os::raw::c_int,
pub OutChar: ::std::option::Option<
unsafe extern "C" fn(arg1: R_outpstream_t, arg2: ::std::os::raw::c_int),
>,
pub OutBytes: ::std::option::Option<
unsafe extern "C" fn(
arg1: R_outpstream_t,
arg2: *mut ::std::os::raw::c_void,
arg3: ::std::os::raw::c_int,
),
>,
pub OutPersistHookFunc:
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: SEXP) -> SEXP>,
pub OutPersistHookData: SEXP,
}
pub type R_inpstream_t = *mut R_inpstream_st;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_inpstream_st {
pub data: R_pstream_data_t,
pub type_: R_pstream_format_t,
pub InChar:
::std::option::Option<unsafe extern "C" fn(arg1: R_inpstream_t) -> ::std::os::raw::c_int>,
pub InBytes: ::std::option::Option<
unsafe extern "C" fn(
arg1: R_inpstream_t,
arg2: *mut ::std::os::raw::c_void,
arg3: ::std::os::raw::c_int,
),
>,
pub InPersistHookFunc:
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: SEXP) -> SEXP>,
pub InPersistHookData: SEXP,
pub native_encoding: [::std::os::raw::c_char; 64usize],
pub nat2nat_obj: *mut ::std::os::raw::c_void,
pub nat2utf8_obj: *mut ::std::os::raw::c_void,
}
pub const SORTED_DECR_NA_1ST: _bindgen_ty_2 = _bindgen_ty_2::SORTED_DECR_NA_1ST;
pub const SORTED_DECR: _bindgen_ty_2 = _bindgen_ty_2::SORTED_DECR;
pub const UNKNOWN_SORTEDNESS: _bindgen_ty_2 = _bindgen_ty_2::UNKNOWN_SORTEDNESS;
pub const SORTED_INCR: _bindgen_ty_2 = _bindgen_ty_2::SORTED_INCR;
pub const SORTED_INCR_NA_1ST: _bindgen_ty_2 = _bindgen_ty_2::SORTED_INCR_NA_1ST;
pub const KNOWN_UNSORTED: _bindgen_ty_2 = _bindgen_ty_2::KNOWN_UNSORTED;
#[repr(i32)]
#[doc = "ALTREP sorting support"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum _bindgen_ty_2 {
SORTED_DECR_NA_1ST = -2,
SORTED_DECR = -1,
#[doc = "INT_MIN is NA_INTEGER!"]
UNKNOWN_SORTEDNESS = -2147483648,
SORTED_INCR = 1,
SORTED_INCR_NA_1ST = 2,
KNOWN_UNSORTED = 0,
}
#[doc = "try to allow some type checking"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_hashtab_type {
pub cell: SEXP,
}
#[repr(u32)]
#[doc = "Startup Actions"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum SA_TYPE {
#[doc = "= 0"]
SA_NORESTORE = 0,
SA_RESTORE = 1,
#[doc = "was === SA_RESTORE"]
SA_DEFAULT = 2,
SA_NOSAVE = 3,
SA_SAVE = 4,
SA_SAVEASK = 5,
SA_SUICIDE = 6,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct structRstart {
pub R_Quiet: Rboolean,
pub R_NoEcho: Rboolean,
pub R_Interactive: Rboolean,
pub R_Verbose: Rboolean,
pub LoadSiteFile: Rboolean,
pub LoadInitFile: Rboolean,
pub DebugInitFile: Rboolean,
pub RestoreAction: SA_TYPE,
pub SaveAction: SA_TYPE,
pub vsize: usize,
pub nsize: usize,
pub max_vsize: usize,
pub max_nsize: usize,
pub ppsize: usize,
pub _bitfield_align_1: [u16; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
pub __bindgen_padding_0: u32,
}
impl structRstart {
#[inline]
pub fn NoRenviron(&self) -> Rboolean {
unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) }
}
#[inline]
pub fn set_NoRenviron(&mut self, val: Rboolean) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(0usize, 16u8, val as u64)
}
}
#[inline]
pub fn RstartVersion(&self) -> ::std::os::raw::c_int {
unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
}
#[inline]
pub fn set_RstartVersion(&mut self, val: ::std::os::raw::c_int) {
unsafe {
let val: u32 = ::std::mem::transmute(val);
self._bitfield_1.set(16usize, 16u8, val as u64)
}
}
#[inline]
pub fn new_bitfield_1(
NoRenviron: Rboolean,
RstartVersion: ::std::os::raw::c_int,
) -> __BindgenBitfieldUnit<[u8; 4usize]> {
let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
__bindgen_bitfield_unit.set(0usize, 16u8, {
let NoRenviron: u32 = unsafe { ::std::mem::transmute(NoRenviron) };
NoRenviron as u64
});
__bindgen_bitfield_unit.set(16usize, 16u8, {
let RstartVersion: u32 = unsafe { ::std::mem::transmute(RstartVersion) };
RstartVersion as u64
});
__bindgen_bitfield_unit
}
}
pub type Rstart = *mut structRstart;
#[repr(u32)]
#[doc = "PARSE_NULL will not be returned by R_ParseVector"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum ParseStatus {
PARSE_NULL = 0,
PARSE_OK = 1,
PARSE_INCOMPLETE = 2,
PARSE_ERROR = 3,
PARSE_EOF = 4,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_altrep_class_t {
pub ptr: SEXP,
}
pub type R_altrep_UnserializeEX_method_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: SEXP,
arg3: SEXP,
arg4: ::std::os::raw::c_int,
arg5: ::std::os::raw::c_int,
) -> SEXP,
>;
pub type R_altrep_Unserialize_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: SEXP) -> SEXP>;
pub type R_altrep_Serialized_state_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> SEXP>;
pub type R_altrep_DuplicateEX_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altrep_Duplicate_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altrep_Inspect_method_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: ::std::os::raw::c_int,
arg3: ::std::os::raw::c_int,
arg4: ::std::os::raw::c_int,
arg5: ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: ::std::os::raw::c_int,
arg3: ::std::os::raw::c_int,
arg4: ::std::os::raw::c_int,
),
>,
) -> Rboolean,
>;
pub type R_altrep_Length_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> R_xlen_t>;
pub type R_altvec_Dataptr_method_t = ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> *mut ::std::os::raw::c_void,
>;
pub type R_altvec_Dataptr_or_null_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> *const ::std::os::raw::c_void>;
pub type R_altvec_Extract_subset_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: SEXP, arg3: SEXP) -> SEXP>;
pub type R_altinteger_Elt_method_t = ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
>;
pub type R_altinteger_Get_region_method_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: R_xlen_t,
arg3: R_xlen_t,
arg4: *mut ::std::os::raw::c_int,
) -> R_xlen_t,
>;
pub type R_altinteger_Is_sorted_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altinteger_No_NA_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altinteger_Sum_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altinteger_Min_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altinteger_Max_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altreal_Elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> f64>;
pub type R_altreal_Get_region_method_t = ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut f64) -> R_xlen_t,
>;
pub type R_altreal_Is_sorted_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altreal_No_NA_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altreal_Sum_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altreal_Min_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altreal_Max_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altlogical_Elt_method_t = ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> ::std::os::raw::c_int,
>;
pub type R_altlogical_Get_region_method_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: R_xlen_t,
arg3: R_xlen_t,
arg4: *mut ::std::os::raw::c_int,
) -> R_xlen_t,
>;
pub type R_altlogical_Is_sorted_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altlogical_No_NA_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altlogical_Sum_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: Rboolean) -> SEXP>;
pub type R_altraw_Elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> Rbyte>;
pub type R_altraw_Get_region_method_t = ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: R_xlen_t, arg4: *mut Rbyte) -> R_xlen_t,
>;
pub type R_altcomplex_Elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> Rcomplex>;
pub type R_altcomplex_Get_region_method_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: SEXP,
arg2: R_xlen_t,
arg3: R_xlen_t,
arg4: *mut Rcomplex,
) -> R_xlen_t,
>;
pub type R_altstring_Elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> SEXP>;
pub type R_altstring_Set_elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: SEXP)>;
pub type R_altstring_Is_sorted_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altstring_No_NA_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP) -> ::std::os::raw::c_int>;
pub type R_altlist_Elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t) -> SEXP>;
pub type R_altlist_Set_elt_method_t =
::std::option::Option<unsafe extern "C" fn(arg1: SEXP, arg2: R_xlen_t, arg3: SEXP)>;
#[repr(u32)]
#[doc = "The graphics engine will only accept locations and dimensions\n in native device coordinates, but it provides the following functions\n for converting between a couple of simple alternative coordinate\n systems and device coordinates:\n DEVICE = native units of the device\n NDC = Normalised device coordinates\n INCHES = inches (!)\n CM = centimetres (!!)"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum GEUnit {
#[doc = "native device coordinates (rasters)"]
GE_DEVICE = 0,
#[doc = "normalised device coordinates x=(0,1), y=(0,1)"]
GE_NDC = 1,
GE_INCHES = 2,
GE_CM = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum GEevent {
#[doc = "In response to this event, the registered graphics system\n should allocate and initialise the systemSpecific structure\n\n Should return R_NilValue on failure so that engine\n can tidy up memory allocation"]
GE_InitState = 0,
#[doc = "This event gives the registered system a chance to undo\n anything done in the initialisation."]
GE_FinaliseState = 1,
#[doc = "This is sent by the graphics engine prior to initialising\n the display list. It give the graphics system the chance\n to squirrel away information it will need for redrawing the\n the display list"]
GE_SaveState = 2,
#[doc = "This is sent by the graphics engine prior to replaying the\n display list. It gives the graphics system the chance to\n restore any information it saved on the GE_SaveState event"]
GE_RestoreState = 6,
#[doc = "Copy system state information to the current device.\n This is used when copying graphics from one device to another\n so all the graphics system needs to do is to copy across\n the bits required for the display list to draw faithfully\n on the new device."]
GE_CopyState = 3,
#[doc = "Create a snapshot of the system state that is sufficient\n for the current \"image\" to be reproduced"]
GE_SaveSnapshotState = 4,
#[doc = "Restore the system state that is saved by GE_SaveSnapshotState"]
GE_RestoreSnapshotState = 5,
#[doc = "When replaying the display list, the graphics engine\n checks, after each replayed action, that the action\n produced valid output. This is the graphics system's\n chance to say that the output is crap (in which case the\n graphics engine will abort the display list replay)."]
GE_CheckPlot = 7,
#[doc = "The device wants to scale the current pointsize\n (for scaling an image)\n This is not a nice general solution, but a quick fix for\n the Windows device."]
GE_ScalePS = 8,
}
#[repr(u32)]
#[doc = "Some line end/join constants"]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum R_GE_lineend {
GE_ROUND_CAP = 1,
GE_BUTT_CAP = 2,
GE_SQUARE_CAP = 3,
}
#[repr(u32)]
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
pub enum R_GE_linejoin {
GE_ROUND_JOIN = 1,
GE_MITRE_JOIN = 2,
GE_BEVEL_JOIN = 3,
}
#[doc = "A structure containing graphical parameters\n\n This is how graphical parameters are passed from graphics systems\n to the graphics engine AND from the graphics engine to graphics\n devices.\n\n Devices are not *required* to honour graphical parameters\n (e.g., alpha transparency is going to be tough for some)"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct R_GE_gcontext {
#[doc = "pen colour (lines, text, borders, ...)"]
pub col: ::std::os::raw::c_int,
#[doc = "fill colour (for polygons, circles, rects, ...)"]
pub fill: ::std::os::raw::c_int,
#[doc = "Gamma correction"]
pub gamma: f64,
#[doc = "Line width (roughly number of pixels)"]
pub lwd: f64,
#[doc = "Line type (solid, dashed, dotted, ...)"]
pub lty: ::std::os::raw::c_int,
#[doc = "Line end"]
pub lend: R_GE_lineend,
#[doc = "line join"]
pub ljoin: R_GE_linejoin,
#[doc = "line mitre"]
pub lmitre: f64,
#[doc = "Character expansion (font size = fontsize*cex)"]
pub cex: f64,
#[doc = "Font size in points"]
pub ps: f64,
#[doc = "Line height (multiply by font size)"]
pub lineheight: f64,
#[doc = "Font face (plain, italic, bold, ...)"]
pub fontface: ::std::os::raw::c_int,
#[doc = "Font family"]
pub fontfamily: [::std::os::raw::c_char; 201usize],
#[doc = "Reference to a pattern fill"]
pub patternFill: SEXP,
}
pub type pGEcontext = *mut R_GE_gcontext;
#[doc = "--------- New (in 1.4.0) device driver structure ---------\n NOTES:\n 1. All locations and dimensions are in device coordinates.\n 2. I found this comment in the doc for dev_Open -- looks nasty\n Any known instances of such a thing happening? Should be\n replaced by a function to query the device for preferred gpars\n settings? (to be called when the device is initialised)\n\n NOTE that it is perfectly acceptable for this\n function to set generic graphics parameters too\n (i.e., override the generic parameter settings\n which GInit sets up) all at the author's own risk\n of course :)\n\n 3. Do we really need dev_StrWidth as well as dev_MetricInfo?\n I can see the difference between the two -- its just a\n question of whether dev_MetricInfo should just return\n what dev_StrWidth would give if font metric information is\n not available. I guess having both allows the developer\n to decide when to ask for which sort of value, and to decide\n what to do when font metric information is not available.\n And why not a dev_StrHeight?\n 4. Should \"ipr\", \"asp\", and \"cra\" be in the device description?\n If not, then where?\n I guess they don't need to be if no device makes use of them.\n On the other hand, they would need to be replaced by a device\n call that R base graphics could use to get enough information\n to figure them out. (e.g., some sort of dpi() function to\n complement the size() function.)"]
pub type DevDesc = _DevDesc;
pub type pDevDesc = *mut DevDesc;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _DevDesc {
#[doc = "left raster coordinate"]
pub left: f64,
#[doc = "right raster coordinate"]
pub right: f64,
#[doc = "bottom raster coordinate"]
pub bottom: f64,
#[doc = "top raster coordinate"]
pub top: f64,
#[doc = "R only has the notion of a rectangular clipping region"]
pub clipLeft: f64,
pub clipRight: f64,
pub clipBottom: f64,
pub clipTop: f64,
#[doc = "x character addressing offset - unused"]
pub xCharOffset: f64,
#[doc = "y character addressing offset"]
pub yCharOffset: f64,
#[doc = "1/2 interline space as frac of line height"]
pub yLineBias: f64,
#[doc = "Inches per raster; \\[0\\]=x, \\[1\\]=y"]
pub ipr: [f64; 2usize],
#[doc = "Character size in rasters; \\[0\\]=x, \\[1\\]=y"]
pub cra: [f64; 2usize],
#[doc = "(initial) Device Gamma Correction"]
pub gamma: f64,
#[doc = "Device-level clipping"]
pub canClip: Rboolean,
#[doc = "can the gamma factor be modified?"]
pub canChangeGamma: Rboolean,
#[doc = "Can do at least some horiz adjust of text\n0 = none, 1 = {0,0.5,1}, 2 = \\[0,1\\]"]
pub canHAdj: ::std::os::raw::c_int,
#[doc = "Device initial settings\n/\n/* These are things that the device must set up when it is created.\n The graphics system can modify them and track current values,"]
pub startps: f64,
#[doc = "sets par(\"fg\"), par(\"col\") and gpar(\"col\")"]
pub startcol: ::std::os::raw::c_int,
#[doc = "sets par(\"bg\") and gpar(\"fill\")"]
pub startfill: ::std::os::raw::c_int,
pub startlty: ::std::os::raw::c_int,
pub startfont: ::std::os::raw::c_int,
pub startgamma: f64,
#[doc = "pointer to device specific parameters"]
pub deviceSpecific: *mut ::std::os::raw::c_void,
#[doc = "toggle for initial display list status"]
pub displayListOn: Rboolean,
#[doc = "can the device generate mousedown events"]
pub canGenMouseDown: Rboolean,
#[doc = "can the device generate mousemove events"]
pub canGenMouseMove: Rboolean,
#[doc = "can the device generate mouseup events"]
pub canGenMouseUp: Rboolean,
#[doc = "can the device generate keyboard events"]
pub canGenKeybd: Rboolean,
#[doc = "can the device generate idle events"]
pub canGenIdle: Rboolean,
#[doc = "This is set while getGraphicsEvent\nis actively looking for events"]
pub gettingEvent: Rboolean,
pub activate: ::std::option::Option<unsafe extern "C" fn(arg1: pDevDesc)>,
pub circle: ::std::option::Option<
unsafe extern "C" fn(x: f64, y: f64, r: f64, gc: pGEcontext, dd: pDevDesc),
>,
pub clip: ::std::option::Option<
unsafe extern "C" fn(x0: f64, x1: f64, y0: f64, y1: f64, dd: pDevDesc),
>,
pub close: ::std::option::Option<unsafe extern "C" fn(dd: pDevDesc)>,
pub deactivate: ::std::option::Option<unsafe extern "C" fn(arg1: pDevDesc)>,
pub locator: ::std::option::Option<
unsafe extern "C" fn(x: *mut f64, y: *mut f64, dd: pDevDesc) -> Rboolean,
>,
pub line: ::std::option::Option<
unsafe extern "C" fn(x1: f64, y1: f64, x2: f64, y2: f64, gc: pGEcontext, dd: pDevDesc),
>,
pub metricInfo: ::std::option::Option<
unsafe extern "C" fn(
c: ::std::os::raw::c_int,
gc: pGEcontext,
ascent: *mut f64,
descent: *mut f64,
width: *mut f64,
dd: pDevDesc,
),
>,
pub mode:
::std::option::Option<unsafe extern "C" fn(mode: ::std::os::raw::c_int, dd: pDevDesc)>,
pub newPage: ::std::option::Option<unsafe extern "C" fn(gc: pGEcontext, dd: pDevDesc)>,
pub polygon: ::std::option::Option<
unsafe extern "C" fn(
n: ::std::os::raw::c_int,
x: *mut f64,
y: *mut f64,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub polyline: ::std::option::Option<
unsafe extern "C" fn(
n: ::std::os::raw::c_int,
x: *mut f64,
y: *mut f64,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub rect: ::std::option::Option<
unsafe extern "C" fn(x0: f64, y0: f64, x1: f64, y1: f64, gc: pGEcontext, dd: pDevDesc),
>,
pub path: ::std::option::Option<
unsafe extern "C" fn(
x: *mut f64,
y: *mut f64,
npoly: ::std::os::raw::c_int,
nper: *mut ::std::os::raw::c_int,
winding: Rboolean,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub raster: ::std::option::Option<
unsafe extern "C" fn(
raster: *mut ::std::os::raw::c_uint,
w: ::std::os::raw::c_int,
h: ::std::os::raw::c_int,
x: f64,
y: f64,
width: f64,
height: f64,
rot: f64,
interpolate: Rboolean,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub cap: ::std::option::Option<unsafe extern "C" fn(dd: pDevDesc) -> SEXP>,
pub size: ::std::option::Option<
unsafe extern "C" fn(
left: *mut f64,
right: *mut f64,
bottom: *mut f64,
top: *mut f64,
dd: pDevDesc,
),
>,
pub strWidth: ::std::option::Option<
unsafe extern "C" fn(
str_: *const ::std::os::raw::c_char,
gc: pGEcontext,
dd: pDevDesc,
) -> f64,
>,
pub text: ::std::option::Option<
unsafe extern "C" fn(
x: f64,
y: f64,
str_: *const ::std::os::raw::c_char,
rot: f64,
hadj: f64,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub onExit: ::std::option::Option<unsafe extern "C" fn(dd: pDevDesc)>,
#[doc = "device_getEvent is no longer used, but the slot is kept for back\n compatibility of the structure."]
pub getEvent: ::std::option::Option<
unsafe extern "C" fn(arg1: SEXP, arg2: *const ::std::os::raw::c_char) -> SEXP,
>,
pub newFrameConfirm: ::std::option::Option<unsafe extern "C" fn(dd: pDevDesc) -> Rboolean>,
#[doc = "and strWidthUTF8"]
pub hasTextUTF8: Rboolean,
pub textUTF8: ::std::option::Option<
unsafe extern "C" fn(
x: f64,
y: f64,
str_: *const ::std::os::raw::c_char,
rot: f64,
hadj: f64,
gc: pGEcontext,
dd: pDevDesc,
),
>,
pub strWidthUTF8: ::std::option::Option<
unsafe extern "C" fn(
str_: *const ::std::os::raw::c_char,
gc: pGEcontext,
dd: pDevDesc,
) -> f64,
>,
pub wantSymbolUTF8: Rboolean,
#[doc = "Is rotated text good enough to be preferable to Hershey in\ncontour labels? Old default was FALSE."]
pub useRotatedTextInContour: Rboolean,
#[doc = "This is an environment holding event handlers."]
pub eventEnv: SEXP,
pub eventHelper:
::std::option::Option<unsafe extern "C" fn(dd: pDevDesc, code: ::std::os::raw::c_int)>,
pub holdflush: ::std::option::Option<
unsafe extern "C" fn(dd: pDevDesc, level: ::std::os::raw::c_int) -> ::std::os::raw::c_int,
>,
#[doc = "1 = no, 2 = yes"]
pub haveTransparency: ::std::os::raw::c_int,
#[doc = "1 = no, 2 = fully, 3 = semi"]
pub haveTransparentBg: ::std::os::raw::c_int,
#[doc = "1 = no, 2 = yes, 3 = except for missing values"]
pub haveRaster: ::std::os::raw::c_int,
#[doc = "1 = no, 2 = yes"]
pub haveCapture: ::std::os::raw::c_int,
#[doc = "1 = no, 2 = yes"]
pub haveLocator: ::std::os::raw::c_int,
pub setPattern:
::std::option::Option<unsafe extern "C" fn(pattern: SEXP, dd: pDevDesc) -> SEXP>,
pub releasePattern: ::std::option::Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>,
pub setClipPath:
::std::option::Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>,
pub releaseClipPath: ::std::option::Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>,
pub setMask:
::std::option::Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>,
pub releaseMask: ::std::option::Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>,
#[doc = "This should match R_GE_version,\n BUT it does not have to.\n It give the graphics engine a chance to work with\n graphics device packages BEFORE they update to\n changes in R_GE_version."]