summaryrefslogtreecommitdiff
path: root/rust/src/component.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-03 23:15:17 -0400
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commit6264254065bbae9d89f51cf3330379b7ace09592 (patch)
tree9ece1d1739215c2faef2d808ef4fdc019ad527fa /rust/src/component.rs
parentc3fdda9727f5507818e3f55576ad32215a22b0f9 (diff)
[Rust] Return `String` instead of `BnString` for cases where lossy conversion can be tolerated
Still need to go and audit all usage, but realistically the most important places to give the user control are with symbols, where the data can come from non utf8 sources This is still incomplete, I just looked for usage of -> BnString so any other variant was omitted.
Diffstat (limited to 'rust/src/component.rs')
-rw-r--r--rust/src/component.rs29
1 files changed, 6 insertions, 23 deletions
diff --git a/rust/src/component.rs b/rust/src/component.rs
index 497c1f57..72441c52 100644
--- a/rust/src/component.rs
+++ b/rust/src/component.rs
@@ -86,10 +86,10 @@ impl Component {
Ref::new(Self { handle })
}
- pub fn guid(&self) -> BnString {
+ pub fn guid(&self) -> String {
let result = unsafe { BNComponentGetGuid(self.handle.as_ptr()) };
assert!(!result.is_null());
- unsafe { BnString::from_raw(result) }
+ unsafe { BnString::into_string(result) }
}
/// Add function to this component.
@@ -145,10 +145,10 @@ impl Component {
}
/// Original name of the component
- pub fn display_name(&self) -> BnString {
+ pub fn display_name(&self) -> String {
let result = unsafe { BNComponentGetDisplayName(self.handle.as_ptr()) };
assert!(!result.is_null());
- unsafe { BnString::from_raw(result) }
+ unsafe { BnString::into_string(result) }
}
/// Original name set for this component
@@ -158,10 +158,10 @@ impl Component {
/// remain what was originally set (e.g. "MyComponentName")
/// If this component has a duplicate name and is moved to a component where none of its siblings share its name,
/// .name will return the original "MyComponentName"
- pub fn name(&self) -> BnString {
+ pub fn name(&self) -> String {
let result = unsafe { BNComponentGetOriginalName(self.handle.as_ptr()) };
assert!(!result.is_null());
- unsafe { BnString::from_raw(result) }
+ unsafe { BnString::into_string(result) }
}
pub fn set_name<S: BnStrCompatible>(&self, name: S) {
@@ -309,20 +309,3 @@ unsafe impl CoreArrayProviderInner for Component {
Guard::new(Self::from_raw(raw_ptr), context)
}
}
-
-// TODO: Should we keep this?
-pub trait IntoComponentGuid {
- fn component_guid(self) -> BnString;
-}
-
-impl IntoComponentGuid for &Component {
- fn component_guid(self) -> BnString {
- self.guid()
- }
-}
-
-impl<S: BnStrCompatible> IntoComponentGuid for S {
- fn component_guid(self) -> BnString {
- BnString::new(self)
- }
-}