Skip to content

Commit d8a8e31

Browse files
committed
cxx-qt-gen: in writer make namespace_pair more generic
This allows it to be used for externcxxqt blocks too. Related to #577
1 parent 85e2ffe commit d8a8e31

File tree

3 files changed

+12
-18
lines changed

3 files changed

+12
-18
lines changed

crates/cxx-qt-gen/src/writer/cpp/header.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use std::collections::BTreeSet;
77

88
use crate::generator::cpp::{fragment::CppFragment, GeneratedCppBlocks};
9-
use crate::writer::cpp::namespace_pair;
9+
use crate::writer::cpp::namespace_start_and_end;
1010
use indoc::formatdoc;
1111

1212
/// Extract the header from a given CppFragment
@@ -43,7 +43,7 @@ fn create_block(block: &str, items: &[String]) -> String {
4343
//
4444
// Note that this is needed incase ObjectA refers to ObjectB in it's class
4545
fn forward_declare(generated: &GeneratedCppBlocks) -> Vec<String> {
46-
let (namespace_start, namespace_end) = namespace_pair(generated);
46+
let (namespace_start, namespace_end) = namespace_start_and_end(&generated.namespace);
4747

4848
generated
4949
.qobjects
@@ -66,7 +66,7 @@ fn forward_declare(generated: &GeneratedCppBlocks) -> Vec<String> {
6666

6767
/// For a given GeneratedCppBlocks write the classes
6868
fn qobjects_header(generated: &GeneratedCppBlocks) -> Vec<String> {
69-
let (namespace_start, namespace_end) = namespace_pair(generated);
69+
let (namespace_start, namespace_end) = namespace_start_and_end(&generated.namespace);
7070

7171
generated.qobjects.iter().map(|qobject| {
7272
formatdoc! { r#"

crates/cxx-qt-gen/src/writer/cpp/mod.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,15 @@ use header::write_cpp_header;
1212
use source::write_cpp_source;
1313

1414
/// For a given GeneratedCppBlocks write the namespace pair
15-
pub fn namespace_pair(generated: &GeneratedCppBlocks) -> (String, String) {
16-
let namespace_start = if generated.namespace.is_empty() {
17-
"".to_owned()
15+
pub fn namespace_start_and_end(namespace: &str) -> (String, String) {
16+
if namespace.is_empty() {
17+
("".to_owned(), "".to_owned())
1818
} else {
19-
format!("namespace {namespace} {{", namespace = generated.namespace)
20-
};
21-
let namespace_end = if generated.namespace.is_empty() {
22-
"".to_owned()
23-
} else {
24-
format!(
25-
"}} // namespace {namespace}",
26-
namespace = generated.namespace
19+
(
20+
format!("namespace {namespace} {{"),
21+
format!("}} // namespace {namespace}"),
2722
)
28-
};
29-
(namespace_start, namespace_end)
23+
}
3024
}
3125

3226
/// For a given GeneratedCppBlocks write this into a C++ header and source pair

crates/cxx-qt-gen/src/writer/cpp/source.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// SPDX-License-Identifier: MIT OR Apache-2.0
55

66
use crate::generator::cpp::{fragment::CppFragment, GeneratedCppBlocks};
7-
use crate::writer::cpp::namespace_pair;
7+
use crate::writer::cpp::namespace_start_and_end;
88
use indoc::formatdoc;
99

1010
/// Extract the source from a given CppFragment
@@ -18,7 +18,7 @@ fn pair_as_source(pair: &CppFragment) -> Option<String> {
1818

1919
/// For a given GeneratedCppBlocks write the implementations
2020
fn qobjects_source(generated: &GeneratedCppBlocks) -> Vec<String> {
21-
let (namespace_start, namespace_end) = namespace_pair(generated);
21+
let (namespace_start, namespace_end) = namespace_start_and_end(&generated.namespace);
2222

2323
generated.qobjects.iter().map(|qobject| {
2424
formatdoc! { r#"

0 commit comments

Comments
 (0)