Skip to content

Commit 178ea0d

Browse files
committed
[Rust] Remove redundant Result from Project::folders
Also make `Project::file_by_path` take a `Path`.
1 parent 82b8f57 commit 178ea0d

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

rust/src/project.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pub mod folder;
33

44
use std::ffi::c_void;
55
use std::fmt::Debug;
6+
use std::path::Path;
67
use std::ptr::{null_mut, NonNull};
78
use std::time::{Duration, SystemTime, UNIX_EPOCH};
89

@@ -240,14 +241,11 @@ impl Project {
240241
}
241242

242243
/// Get a list of folders in the project
243-
pub fn folders(&self) -> Result<Array<ProjectFolder>, ()> {
244+
pub fn folders(&self) -> Array<ProjectFolder> {
244245
let mut count = 0;
245246
let result = unsafe { BNProjectGetFolders(self.handle.as_ptr(), &mut count) };
246-
if result.is_null() {
247-
return Err(());
248-
}
249-
250-
Ok(unsafe { Array::new(result, count, ()) })
247+
assert!(!result.is_null());
248+
unsafe { Array::new(result, count, ()) }
251249
}
252250

253251
/// Retrieve a folder in the project by unique folder `id`
@@ -569,7 +567,7 @@ impl Project {
569567
}
570568

571569
/// Retrieve a file in the project by the `path` on disk
572-
pub fn file_by_path(&self, path: &str) -> Option<Ref<ProjectFile>> {
570+
pub fn file_by_path(&self, path: &Path) -> Option<Ref<ProjectFile>> {
573571
let path_raw = path.to_cstr();
574572
let result =
575573
unsafe { BNProjectGetFileByPathOnDisk(self.handle.as_ptr(), path_raw.as_ptr()) };

rust/tests/project.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,10 @@ fn modify_project() {
151151
.create_folder(None, "deleted_folder", folder_4_desc)
152152
.unwrap();
153153

154-
assert_eq!(project.folders().unwrap().len(), 5);
154+
assert_eq!(project.folders().len(), 5);
155155
let last_folder = project.folder_by_id(&folder_5.id()).unwrap();
156156
project.delete_folder(&last_folder).unwrap();
157-
assert_eq!(project.folders().unwrap().len(), 4);
157+
assert_eq!(project.folders().len(), 4);
158158
drop(folder_5);
159159

160160
// create, import and delete file
@@ -246,7 +246,9 @@ fn modify_project() {
246246

247247
assert_eq!(project.files().len(), 10);
248248
let file_a = project.file_by_id(&file_8.id()).unwrap();
249-
let file_b = project.file_by_path(&file_7.path_on_disk()).unwrap();
249+
let file_b = project
250+
.file_by_path(&file_7.path_on_disk().unwrap())
251+
.unwrap();
250252
project.delete_file(&file_a);
251253
project.delete_file(&file_b);
252254
assert_eq!(project.files().len(), 8);
@@ -282,7 +284,7 @@ fn modify_project() {
282284
(&tmp_folder_1_name, None),
283285
(&tmp_folder_2_name, None),
284286
];
285-
for folder in project.folders().unwrap().iter() {
287+
for folder in project.folders().iter() {
286288
let found = folders
287289
.iter()
288290
.find(|f| folder.name().as_str() == f.0)
@@ -329,7 +331,7 @@ fn modify_project() {
329331
.as_secs()
330332
);
331333
}
332-
let content = std::fs::read(file.path_on_disk().as_str()).unwrap();
334+
let content = std::fs::read(file.path_on_disk().unwrap()).unwrap();
333335
assert_eq!(content, found.1);
334336
}
335337

0 commit comments

Comments
 (0)