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
pub use ffi as lua;
/// Check whether the current tarantool executable supports decimal api.
/// If this function returns `false` using any of the functions in
/// [`tarantool::decimal`] will result in a **panic**.
///
/// [`tarantool::decimal`]: mod@crate::decimal
/// Check whether the current tarantool executable supports fiber::channel api.
/// If this function returns `false` using any of the functions in
/// [`tarantool::fiber::channel`] will result in a **panic**.
///
/// [`tarantool::fiber::channel`]: crate::fiber::channel
/// Check whether the current tarantool executable supports getting tuple fields
/// by json pattern.
/// If this function returns `false` then
/// - passing a string to [`Tuple::try_get`] will always result in an `Error`,
/// - passing a string to [`Tuple::get`] will always result in a **panic**.
///
/// [`Tuple::try_get`]: crate::tuple::Tuple::try_get
/// [`Tuple::get`]: crate::tuple::Tuple::get
/// Check whether the current tarantool executable supports datetime api.
/// If this function returns `false` using functions in
/// [`tarantool::datetime`] may result in a **panic**.
///
/// [`tarantool::datetime`]: mod@crate::datetime
/// Check whether the current tarantool executable supports fiber_set_ctx api.
/// If this function returns `false` using functions in
/// [`fiber_set_ctx`] & [`fiber_get_ctx`] may result in a **panic**.
///
/// # Safety
/// This function is only safe to be called from the tx thread.
///
/// [`fiber_set_ctx`]: crate::ffi::tarantool::fiber_set_ctx
/// [`fiber_get_ctx`]: crate::ffi::tarantool::fiber_get_ctx
pub unsafe
/// Check whether the current tarantool executable supports the api for
/// fully temporary spaces.
///
/// If this function returns `false` creating spaces with
/// [`SpaceType::Temporary`] will not work.
///
/// [`SpaceType::Temporary`]: crate::space::SpaceType::Temporary
/// Check whether the current tarantool executable supports the [`fiber_find`],
/// [`fiber_set_name_n`], [`fiber_id`], [`fiber_csw`], [`fiber_name`] ffi apis.
///
/// If this function returns `false` then the corrsponding apis (e.g. setting
/// fiber name) will use the less efficient implementation based on the lua
/// interface.
///
/// # Safety
/// This function is only safe to be called from the tx thread.
///
/// [`fiber_find`]: crate::ffi::tarantool::fiber_find
/// [`fiber_set_name_n`]: crate::ffi::tarantool::fiber_set_name_n
/// [`fiber_id`]: crate::ffi::tarantool::fiber_id
/// [`fiber_name`]: crate::ffi::tarantool::fiber_name
/// [`fiber_csw`]: crate::ffi::tarantool::fiber_csw
pub unsafe