Skip to content

Commit 904c26e

Browse files
committed
IT: add stubs required for examples to compile
1 parent cc208a1 commit 904c26e

File tree

4 files changed

+284
-4
lines changed

4 files changed

+284
-4
lines changed

scylla-rust-wrapper/build.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,19 @@ fn main() {
158158
&["CassMetrics_", "CassMetrics"],
159159
&out_path,
160160
);
161+
prepare_cppdriver_data(
162+
"cppdriver_authenticator_types.rs",
163+
&[
164+
"CassAuthenticator",
165+
"CassAuthenticatorCallbacks",
166+
"CassAuthenticatorDataCleanupCallback",
167+
],
168+
&out_path,
169+
);
170+
prepare_cppdriver_data(
171+
"cppdriver_host_listener_types.rs",
172+
&["CassHostListenerEvent", "CassHostListenerCallback"],
173+
&out_path,
174+
);
175+
prepare_cppdriver_data("cppdriver_version_types.rs", &["CassVersion"], &out_path);
161176
}

scylla-rust-wrapper/src/api.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -974,12 +974,40 @@ pub mod integration_testing {
974974
// Disabling rustfmt to have one item per line for better readability.
975975
#[rustfmt::skip]
976976
pub use crate::integration_testing::stubs::{
977+
CassAggregateMeta,
978+
CassAuthenticator,
977979
CassCustomPayload,
980+
CassFunctionMeta,
981+
CassIndexMeta,
982+
cass_aggregate_meta_name,
983+
cass_authenticator_response,
984+
cass_cluster_set_authenticator_callbacks,
985+
cass_cluster_set_cloud_secure_connection_bundle,
986+
cass_cluster_set_host_listener_callback,
987+
cass_cluster_set_num_threads_io,
988+
cass_cluster_set_queue_size_io,
978989
cass_cluster_set_cloud_secure_connection_bundle_n,
979990
cass_cluster_set_exponential_reconnect,
980991
cass_cluster_set_use_randomized_contact_points,
981992
cass_custom_payload_new,
993+
cass_function_meta_name,
982994
cass_future_custom_payload_item,
983995
cass_future_custom_payload_item_count,
996+
cass_index_meta_name,
997+
cass_iterator_fields_from_aggregate_meta,
998+
cass_iterator_fields_from_column_meta,
999+
cass_iterator_fields_from_function_meta,
1000+
cass_iterator_fields_from_index_meta,
1001+
cass_iterator_fields_from_keyspace_meta,
1002+
cass_iterator_fields_from_table_meta,
1003+
cass_iterator_get_index_meta,
1004+
cass_iterator_get_meta_field_name,
1005+
cass_iterator_get_meta_field_value,
1006+
cass_iterator_indexes_from_table_meta,
1007+
cass_keyspace_meta_aggregate_by_name,
1008+
cass_keyspace_meta_function_by_name,
1009+
cass_schema_meta_version,
1010+
cass_statement_add_key_index,
1011+
cass_statement_set_keyspace,
9841012
};
9851013
}

scylla-rust-wrapper/src/integration_testing.rs

Lines changed: 214 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,13 +362,24 @@ pub unsafe extern "C" fn testing_retry_policy_ignoring_new()
362362
))))
363363
}
364364

365-
/// Stubs of functions that must be implemented for the integration tests to compile,
366-
/// but the proper implementation is not needed for the tests to run,
367-
/// and at the same time the functions are not yet implemented in the wrapper.
365+
/// Stubs of functions that must be implemented for the integration tests
366+
/// or examples to compile, but the proper implementation is not needed for
367+
/// the tests/examples to run, and at the same time the functions are not
368+
/// yet implemented in the wrapper.
368369
pub(crate) mod stubs {
370+
use std::ffi::c_void;
371+
369372
use super::*;
370-
use crate::argconv::ptr_to_cstr_n;
373+
use crate::argconv::{CassOwnedExclusivePtr, CassPtr, ptr_to_cstr_n, strlen};
374+
use crate::cass_authenticator_types::{
375+
CassAuthenticatorCallbacks, CassAuthenticatorDataCleanupCallback,
376+
};
371377
use crate::cass_error_types::CassError;
378+
use crate::cass_host_listener_types::CassHostListenerCallback;
379+
use crate::cass_version_types::CassVersion;
380+
use crate::iterator::CassIterator;
381+
use crate::metadata::{CassColumnMeta, CassKeyspaceMeta, CassSchemaMeta, CassTableMeta};
382+
use crate::query_result::CassValue;
372383
use crate::types::cass_byte_t;
373384

374385
pub struct CassCustomPayload;
@@ -383,6 +394,16 @@ pub(crate) mod stubs {
383394
CassError::CASS_OK
384395
}
385396

397+
#[unsafe(no_mangle)]
398+
pub unsafe extern "C" fn cass_cluster_set_cloud_secure_connection_bundle(
399+
cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
400+
path: *const c_char,
401+
) -> CassError {
402+
unsafe {
403+
cass_cluster_set_cloud_secure_connection_bundle_n(cluster_raw, path, strlen(path))
404+
}
405+
}
406+
386407
#[unsafe(no_mangle)]
387408
pub unsafe extern "C" fn cass_cluster_set_cloud_secure_connection_bundle_n(
388409
_cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
@@ -452,4 +473,193 @@ pub(crate) mod stubs {
452473
) -> size_t {
453474
0
454475
}
476+
477+
#[unsafe(no_mangle)]
478+
pub extern "C" fn cass_cluster_set_authenticator_callbacks(
479+
_cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
480+
_callbacks: CassBorrowedSharedPtr<CassAuthenticatorCallbacks, CConst>,
481+
_cleanup_callback: CassAuthenticatorDataCleanupCallback,
482+
_data: *mut c_void,
483+
) -> CassError {
484+
CassError::CASS_OK
485+
}
486+
487+
pub struct CassAuthenticator;
488+
489+
#[unsafe(no_mangle)]
490+
pub extern "C" fn cass_authenticator_response(
491+
_auth: CassBorrowedExclusivePtr<CassAuthenticator, CMut>,
492+
_size: size_t,
493+
) -> *mut c_char {
494+
std::ptr::null_mut()
495+
}
496+
497+
#[unsafe(no_mangle)]
498+
pub extern "C" fn cass_statement_add_key_index(
499+
_statement: CassBorrowedExclusivePtr<CassStatement, CMut>,
500+
_index: size_t,
501+
) -> CassError {
502+
CassError::CASS_OK
503+
}
504+
505+
#[unsafe(no_mangle)]
506+
pub extern "C" fn cass_statement_set_keyspace(
507+
_statement: CassBorrowedExclusivePtr<CassStatement, CMut>,
508+
_keyspace: *const c_char,
509+
) -> CassError {
510+
CassError::CASS_OK
511+
}
512+
513+
#[unsafe(no_mangle)]
514+
pub extern "C" fn cass_cluster_set_host_listener_callback(
515+
_cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
516+
_callback: CassHostListenerCallback,
517+
_data: *mut c_void,
518+
) -> CassError {
519+
CassError::CASS_OK
520+
}
521+
522+
#[unsafe(no_mangle)]
523+
pub extern "C" fn cass_cluster_set_num_threads_io(
524+
_cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
525+
_num_threads: u32,
526+
) -> CassError {
527+
CassError::CASS_OK
528+
}
529+
530+
#[unsafe(no_mangle)]
531+
pub extern "C" fn cass_cluster_set_queue_size_io(
532+
_cluster_raw: CassBorrowedExclusivePtr<CassCluster, CMut>,
533+
_queue_size: u32,
534+
) -> CassError {
535+
CassError::CASS_OK
536+
}
537+
538+
#[unsafe(no_mangle)]
539+
pub extern "C" fn cass_iterator_get_meta_field_name(
540+
_cass_iterator: CassBorrowedSharedPtr<CassIterator, CConst>,
541+
_name: *mut *const c_char,
542+
_name_length: *mut size_t,
543+
) {
544+
}
545+
546+
#[unsafe(no_mangle)]
547+
pub extern "C" fn cass_schema_meta_version(
548+
_schema_meta: CassBorrowedSharedPtr<CassSchemaMeta, CConst>,
549+
) -> CassVersion {
550+
CassVersion {
551+
major_version: 2,
552+
minor_version: 1,
553+
patch_version: 3,
554+
}
555+
}
556+
557+
#[unsafe(no_mangle)]
558+
pub extern "C" fn cass_iterator_get_meta_field_value<'schema>(
559+
_cass_iterator: CassBorrowedSharedPtr<CassIterator<'schema>, CConst>,
560+
) -> CassOwnedExclusivePtr<CassValue<'schema>, CMut> {
561+
CassPtr::null_mut()
562+
}
563+
564+
#[unsafe(no_mangle)]
565+
pub extern "C" fn cass_iterator_indexes_from_table_meta(
566+
_cass_table_meta: CassBorrowedSharedPtr<CassTableMeta, CConst>,
567+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
568+
CassPtr::null_mut()
569+
}
570+
571+
#[unsafe(no_mangle)]
572+
pub extern "C" fn cass_iterator_fields_from_column_meta(
573+
_cass_column_meta: CassBorrowedSharedPtr<CassColumnMeta, CConst>,
574+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
575+
CassPtr::null_mut()
576+
}
577+
578+
#[unsafe(no_mangle)]
579+
pub extern "C" fn cass_iterator_fields_from_table_meta(
580+
_cass_table_meta: CassBorrowedSharedPtr<CassTableMeta, CConst>,
581+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
582+
CassPtr::null_mut()
583+
}
584+
585+
#[unsafe(no_mangle)]
586+
pub extern "C" fn cass_iterator_fields_from_keyspace_meta(
587+
_cass_keyspace_meta: CassBorrowedSharedPtr<CassKeyspaceMeta, CConst>,
588+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
589+
CassPtr::null_mut()
590+
}
591+
592+
pub struct CassFunctionMeta;
593+
594+
#[unsafe(no_mangle)]
595+
pub extern "C" fn cass_function_meta_name(
596+
_cass_function_meta: CassBorrowedSharedPtr<CassFunctionMeta, CConst>,
597+
_name: *mut *const c_char,
598+
_name_length: *mut size_t,
599+
) {
600+
}
601+
602+
#[unsafe(no_mangle)]
603+
pub extern "C" fn cass_iterator_fields_from_function_meta(
604+
_cass_function_meta: CassBorrowedSharedPtr<CassFunctionMeta, CConst>,
605+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
606+
CassPtr::null_mut()
607+
}
608+
609+
pub struct CassIndexMeta;
610+
611+
#[unsafe(no_mangle)]
612+
pub extern "C" fn cass_iterator_get_index_meta<'schema>(
613+
_cass_iterator: CassBorrowedSharedPtr<CassIterator<'schema>, CConst>,
614+
) -> CassBorrowedSharedPtr<'schema, CassIndexMeta, CConst> {
615+
CassPtr::null()
616+
}
617+
618+
#[unsafe(no_mangle)]
619+
pub extern "C" fn cass_index_meta_name(
620+
_cass_index_meta: CassBorrowedSharedPtr<CassIndexMeta, CConst>,
621+
_name: *mut *const c_char,
622+
_name_length: *mut size_t,
623+
) {
624+
}
625+
626+
#[unsafe(no_mangle)]
627+
pub extern "C" fn cass_iterator_fields_from_index_meta(
628+
_cass_index_meta: CassBorrowedSharedPtr<CassIndexMeta, CConst>,
629+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
630+
CassPtr::null_mut()
631+
}
632+
633+
#[unsafe(no_mangle)]
634+
pub unsafe extern "C" fn cass_keyspace_meta_function_by_name(
635+
_keyspace_meta: CassBorrowedSharedPtr<CassKeyspaceMeta, CConst>,
636+
_function: *const c_char,
637+
) -> CassBorrowedSharedPtr<CassFunctionMeta, CConst> {
638+
CassPtr::null()
639+
}
640+
641+
pub struct CassAggregateMeta;
642+
643+
#[unsafe(no_mangle)]
644+
pub extern "C" fn cass_aggregate_meta_name(
645+
_cass_aggregate_meta: CassBorrowedSharedPtr<CassAggregateMeta, CConst>,
646+
_name: *mut *const c_char,
647+
_name_length: *mut size_t,
648+
) {
649+
}
650+
651+
#[unsafe(no_mangle)]
652+
pub extern "C" fn cass_iterator_fields_from_aggregate_meta(
653+
_cass_aggregate_meta: CassBorrowedSharedPtr<CassAggregateMeta, CConst>,
654+
) -> CassOwnedExclusivePtr<CassIterator, CMut> {
655+
CassPtr::null_mut()
656+
}
657+
658+
#[unsafe(no_mangle)]
659+
pub unsafe extern "C" fn cass_keyspace_meta_aggregate_by_name(
660+
_keyspace_meta: CassBorrowedSharedPtr<CassKeyspaceMeta, CConst>,
661+
_aggregate: *const c_char,
662+
) -> CassBorrowedSharedPtr<CassAggregateMeta, CConst> {
663+
CassPtr::null()
664+
}
455665
}

scylla-rust-wrapper/src/lib.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,33 @@ pub(crate) mod cass_metrics_types {
164164
include_bindgen_generated!("cppdriver_metrics_types.rs");
165165
}
166166

167+
/// CassAuthenticator
168+
pub(crate) mod cass_authenticator_types {
169+
#![allow(unused)]
170+
#![allow(non_camel_case_types, non_snake_case)]
171+
#![allow(unreachable_pub, unnameable_types)]
172+
173+
include_bindgen_generated!("cppdriver_authenticator_types.rs");
174+
}
175+
176+
/// CassHostListenerEvent, CassHostListenerCallback
177+
pub(crate) mod cass_host_listener_types {
178+
#![allow(unused)]
179+
#![allow(non_camel_case_types, non_snake_case)]
180+
#![allow(unreachable_pub, unnameable_types)]
181+
182+
include_bindgen_generated!("cppdriver_host_listener_types.rs");
183+
}
184+
185+
/// CassVersion
186+
pub(crate) mod cass_version_types {
187+
#![allow(unused)]
188+
#![allow(non_camel_case_types, non_snake_case)]
189+
#![allow(unreachable_pub, unnameable_types)]
190+
191+
include_bindgen_generated!("cppdriver_version_types.rs");
192+
}
193+
167194
pub(crate) static RUNTIME: LazyLock<Runtime> = LazyLock::new(|| Runtime::new().unwrap());
168195
pub(crate) static LOGGER: LazyLock<RwLock<Logger>> = LazyLock::new(|| {
169196
RwLock::new(Logger {

0 commit comments

Comments
 (0)