samp_sdk/omp/generated/
db_row.rs1#![allow(unused_imports)]
9
10use crate::omp::containers::{FlatSet, HybridString, Pair, Span};
11use crate::omp::types::{
12 Colour, GTAQuat, Hours, Microseconds, Milliseconds, Minutes, Seconds, StringView, TimePoint,
13 UID, Vector2, Vector3, Vector4, WorldTimePoint,
14};
15use crate::omp::vtable::{call_vtable_small_struct, opaque, slots, virtual_fns};
16use crate::omp::*;
17
18opaque! {
19 pub IDatabaseResultSetRow;
21}
22
23slots! {
24 SLOT_GET_FIELD_COUNT: usize = 0, 0;
26 SLOT_IS_FIELD_NAME_AVAILABLE: usize = 1, 1;
28 SLOT_GET_FIELD_NAME: usize = 2, 2;
30 SLOT_GET_FIELD_STRING: usize = 3, 3;
32 SLOT_GET_FIELD_INT: usize = 4, 4;
34 SLOT_GET_FIELD_FLOAT: usize = 5, 5;
36 SLOT_GET_FIELD_STRING_BY_NAME: usize = 6, 6;
38 SLOT_GET_FIELD_INT_BY_NAME: usize = 7, 7;
40 SLOT_GET_FIELD_FLOAT_BY_NAME: usize = 8, 8;
42}
43
44virtual_fns! {
45 #[must_use]
50 pub fn db_row_field_count(row: IDatabaseResultSetRow) -> usize = [0, SLOT_GET_FIELD_COUNT] or 0;
51
52 #[must_use]
57 pub fn db_row_is_field_name_available(
58 row: IDatabaseResultSetRow,
59 field_name: StringView,
60 ) -> bool = [0, SLOT_IS_FIELD_NAME_AVAILABLE] or false;
61
62 #[must_use]
67 pub fn db_row_field_int(
68 row: IDatabaseResultSetRow,
69 field_index: usize,
70 ) -> i32 = [0, SLOT_GET_FIELD_INT] or 0;
71
72 #[must_use]
77 pub fn db_row_field_float(
78 row: IDatabaseResultSetRow,
79 field_index: usize,
80 ) -> f64 = [0, SLOT_GET_FIELD_FLOAT] or 0.0;
81
82 #[must_use]
87 pub fn db_row_field_int_by_name(
88 row: IDatabaseResultSetRow,
89 field_name: StringView,
90 ) -> i32 = [0, SLOT_GET_FIELD_INT_BY_NAME] or 0;
91
92 #[must_use]
97 pub fn db_row_field_float_by_name(
98 row: IDatabaseResultSetRow,
99 field_name: StringView,
100 ) -> f64 = [0, SLOT_GET_FIELD_FLOAT_BY_NAME] or 0.0;
101}
102
103#[must_use]
108pub unsafe fn db_row_field_name(
109 row: *mut IDatabaseResultSetRow,
110 field_index: usize,
111) -> Option<String> {
112 let view = call_vtable_small_struct!(
113 row.cast::<u8>(),
114 0,
115 SLOT_GET_FIELD_NAME,
116 StringView,
117 StringView::EMPTY,
118 (usize)(field_index)
119 )?;
120 unsafe { view.to_owned_string() }
121}
122
123#[must_use]
128pub unsafe fn db_row_field_string(
129 row: *mut IDatabaseResultSetRow,
130 field_index: usize,
131) -> Option<String> {
132 let view = call_vtable_small_struct!(
133 row.cast::<u8>(),
134 0,
135 SLOT_GET_FIELD_STRING,
136 StringView,
137 StringView::EMPTY,
138 (usize)(field_index)
139 )?;
140 unsafe { view.to_owned_string() }
141}
142
143#[must_use]
148pub unsafe fn db_row_field_string_by_name(
149 row: *mut IDatabaseResultSetRow,
150 field_name: StringView,
151) -> Option<String> {
152 let view = call_vtable_small_struct!(
153 row.cast::<u8>(),
154 0,
155 SLOT_GET_FIELD_STRING_BY_NAME,
156 StringView,
157 StringView::EMPTY,
158 (StringView)(field_name)
159 )?;
160 unsafe { view.to_owned_string() }
161}