Skip to content

Commit

Permalink
qset: ensure methods in same namespace don't collide in C++ or Rust
Browse files Browse the repository at this point in the history
  • Loading branch information
ahayzen-kdab authored and przempore committed Mar 15, 2023
1 parent f94b585 commit 7dae3bf
Show file tree
Hide file tree
Showing 18 changed files with 182 additions and 108 deletions.
2 changes: 2 additions & 0 deletions crates/cxx-qt-lib-headers/include/qset.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ struct rust::IsRelocatable<QSet<T>> : std::true_type

namespace rust {
namespace cxxqtlib1 {
namespace qset {

template<typename T>
::rust::isize
Expand Down Expand Up @@ -58,6 +59,7 @@ qsetLen(const QSet<T>& s) noexcept
return static_cast<::rust::isize>(s.size());
}

}
}
}

Expand Down
32 changes: 20 additions & 12 deletions crates/cxx-qt-lib/src/types/qset/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");
#[rust_name = "clone_$1"]
#[rust_name = "qset_clone_$1"]
fn construct(_: &QSet_$1) -> QSet_$1;
#[rust_name = "default_$1"]
#[rust_name = "qset_default_$1"]
fn construct() -> QSet_$1;
#[rust_name = "drop_$1"]
#[rust_name = "qset_drop_$1"]
fn drop(_: &mut QSet_$1);
}
#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_$1"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_$1, pos: isize) -> &'a $1;
Expand All @@ -54,15 +58,15 @@ pub mod ffi {
}
pub(crate) fn clone(s: &ffi::QSet_$1) -> ffi::QSet_$1 {
ffi::clone_$1(s)
ffi::qset_clone_$1(s)
}
pub(crate) fn default() -> ffi::QSet_$1 {
ffi::default_$1()
ffi::qset_default_$1()
}
pub(crate) fn drop(s: &mut ffi::QSet_$1) {
ffi::drop_$1(s);
ffi::qset_drop_$1(s);
}
pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_$1, pos: isize) -> &$1 {
Expand Down Expand Up @@ -110,12 +114,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");
#[rust_name = "clone_$1"]
#[rust_name = "qset_clone_$1"]
fn construct(_: &QSet_$1) -> QSet_$1;
#[rust_name = "default_$1"]
#[rust_name = "qset_default_$1"]
fn construct() -> QSet_$1;
#[rust_name = "drop_$1"]
#[rust_name = "qset_drop_$1"]
fn drop(_: &mut QSet_$1);
}
#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_$1"]
unsafe fn qsetGetUnchecked(set: &QSet_$1, pos: isize) -> &$1;
#[rust_name = "insert_$1"]
Expand All @@ -126,15 +134,15 @@ pub mod ffi {
}
pub(crate) fn clone(s: &ffi::QSet_$1) -> ffi::QSet_$1 {
ffi::clone_$1(s)
ffi::qset_clone_$1(s)
}
pub(crate) fn default() -> ffi::QSet_$1 {
ffi::default_$1()
ffi::qset_default_$1()
}
pub(crate) fn drop(s: &mut ffi::QSet_$1) {
ffi::drop_$1(s);
ffi::qset_drop_$1(s);
}
pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_$1, pos: isize) -> &ffi::$1 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_bool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_bool"]
#[rust_name = "qset_clone_bool"]
fn construct(_: &QSet_bool) -> QSet_bool;
#[rust_name = "default_bool"]
#[rust_name = "qset_default_bool"]
fn construct() -> QSet_bool;
#[rust_name = "drop_bool"]
#[rust_name = "qset_drop_bool"]
fn drop(_: &mut QSet_bool);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_bool"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_bool, pos: isize) -> &'a bool;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_bool) -> ffi::QSet_bool {
ffi::clone_bool(s)
ffi::qset_clone_bool(s)
}

pub(crate) fn default() -> ffi::QSet_bool {
ffi::default_bool()
ffi::qset_default_bool()
}

pub(crate) fn drop(s: &mut ffi::QSet_bool) {
ffi::drop_bool(s);
ffi::qset_drop_bool(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_bool, pos: isize) -> &bool {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_f32.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_f32"]
#[rust_name = "qset_clone_f32"]
fn construct(_: &QSet_f32) -> QSet_f32;
#[rust_name = "default_f32"]
#[rust_name = "qset_default_f32"]
fn construct() -> QSet_f32;
#[rust_name = "drop_f32"]
#[rust_name = "qset_drop_f32"]
fn drop(_: &mut QSet_f32);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_f32"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_f32, pos: isize) -> &'a f32;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_f32) -> ffi::QSet_f32 {
ffi::clone_f32(s)
ffi::qset_clone_f32(s)
}

pub(crate) fn default() -> ffi::QSet_f32 {
ffi::default_f32()
ffi::qset_default_f32()
}

pub(crate) fn drop(s: &mut ffi::QSet_f32) {
ffi::drop_f32(s);
ffi::qset_drop_f32(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_f32, pos: isize) -> &f32 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_f64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_f64"]
#[rust_name = "qset_clone_f64"]
fn construct(_: &QSet_f64) -> QSet_f64;
#[rust_name = "default_f64"]
#[rust_name = "qset_default_f64"]
fn construct() -> QSet_f64;
#[rust_name = "drop_f64"]
#[rust_name = "qset_drop_f64"]
fn drop(_: &mut QSet_f64);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_f64"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_f64, pos: isize) -> &'a f64;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_f64) -> ffi::QSet_f64 {
ffi::clone_f64(s)
ffi::qset_clone_f64(s)
}

pub(crate) fn default() -> ffi::QSet_f64 {
ffi::default_f64()
ffi::qset_default_f64()
}

pub(crate) fn drop(s: &mut ffi::QSet_f64) {
ffi::drop_f64(s);
ffi::qset_drop_f64(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_f64, pos: isize) -> &f64 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_i16.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_i16"]
#[rust_name = "qset_clone_i16"]
fn construct(_: &QSet_i16) -> QSet_i16;
#[rust_name = "default_i16"]
#[rust_name = "qset_default_i16"]
fn construct() -> QSet_i16;
#[rust_name = "drop_i16"]
#[rust_name = "qset_drop_i16"]
fn drop(_: &mut QSet_i16);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_i16"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_i16, pos: isize) -> &'a i16;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_i16) -> ffi::QSet_i16 {
ffi::clone_i16(s)
ffi::qset_clone_i16(s)
}

pub(crate) fn default() -> ffi::QSet_i16 {
ffi::default_i16()
ffi::qset_default_i16()
}

pub(crate) fn drop(s: &mut ffi::QSet_i16) {
ffi::drop_i16(s);
ffi::qset_drop_i16(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_i16, pos: isize) -> &i16 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_i32.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_i32"]
#[rust_name = "qset_clone_i32"]
fn construct(_: &QSet_i32) -> QSet_i32;
#[rust_name = "default_i32"]
#[rust_name = "qset_default_i32"]
fn construct() -> QSet_i32;
#[rust_name = "drop_i32"]
#[rust_name = "qset_drop_i32"]
fn drop(_: &mut QSet_i32);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_i32"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_i32, pos: isize) -> &'a i32;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_i32) -> ffi::QSet_i32 {
ffi::clone_i32(s)
ffi::qset_clone_i32(s)
}

pub(crate) fn default() -> ffi::QSet_i32 {
ffi::default_i32()
ffi::qset_default_i32()
}

pub(crate) fn drop(s: &mut ffi::QSet_i32) {
ffi::drop_i32(s);
ffi::qset_drop_i32(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_i32, pos: isize) -> &i32 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_i64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_i64"]
#[rust_name = "qset_clone_i64"]
fn construct(_: &QSet_i64) -> QSet_i64;
#[rust_name = "default_i64"]
#[rust_name = "qset_default_i64"]
fn construct() -> QSet_i64;
#[rust_name = "drop_i64"]
#[rust_name = "qset_drop_i64"]
fn drop(_: &mut QSet_i64);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_i64"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_i64, pos: isize) -> &'a i64;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_i64) -> ffi::QSet_i64 {
ffi::clone_i64(s)
ffi::qset_clone_i64(s)
}

pub(crate) fn default() -> ffi::QSet_i64 {
ffi::default_i64()
ffi::qset_default_i64()
}

pub(crate) fn drop(s: &mut ffi::QSet_i64) {
ffi::drop_i64(s);
ffi::qset_drop_i64(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_i64, pos: isize) -> &i64 {
Expand Down
16 changes: 10 additions & 6 deletions crates/cxx-qt-lib/src/types/qset/qset_i8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@ pub mod ffi {
unsafe extern "C++" {
include!("cxx-qt-lib/common.h");

#[rust_name = "clone_i8"]
#[rust_name = "qset_clone_i8"]
fn construct(_: &QSet_i8) -> QSet_i8;
#[rust_name = "default_i8"]
#[rust_name = "qset_default_i8"]
fn construct() -> QSet_i8;
#[rust_name = "drop_i8"]
#[rust_name = "qset_drop_i8"]
fn drop(_: &mut QSet_i8);
}

#[namespace = "rust::cxxqtlib1::qset"]
unsafe extern "C++" {
#[rust_name = "get_unchecked_i8"]
#[allow(clippy::needless_lifetimes)]
unsafe fn qsetGetUnchecked<'a>(set: &'a QSet_i8, pos: isize) -> &'a i8;
Expand All @@ -40,15 +44,15 @@ pub mod ffi {
}

pub(crate) fn clone(s: &ffi::QSet_i8) -> ffi::QSet_i8 {
ffi::clone_i8(s)
ffi::qset_clone_i8(s)
}

pub(crate) fn default() -> ffi::QSet_i8 {
ffi::default_i8()
ffi::qset_default_i8()
}

pub(crate) fn drop(s: &mut ffi::QSet_i8) {
ffi::drop_i8(s);
ffi::qset_drop_i8(s);
}

pub(crate) unsafe fn get_unchecked(s: &ffi::QSet_i8, pos: isize) -> &i8 {
Expand Down
Loading

0 comments on commit 7dae3bf

Please sign in to comment.