summaryrefslogtreecommitdiff
path: root/rust/src/segment.rs
diff options
context:
space:
mode:
authorFabian Freyer <fabian.freyer@physik.tu-berlin.de>2022-01-31 06:24:07 +0100
committerKyleMiles <krm504@nyu.edu>2022-02-14 18:45:09 -0500
commit181ad567199e5685578ecf7ad400257098c2e175 (patch)
tree9e45c986cc8157dfe0fd6f5a8e80898d4a128309 /rust/src/segment.rs
parentae7ae4f63f931342e155d77bb4cf6d75289682bf (diff)
rust: add ArrayGuard and for non-owned arrays
To make use of shard functionality, we split the CoreOwnedArrayProvider into CoreArrayProvider and CoreOwnedArrayProvider. Array makes use of the CoreOwnedArrayProvider, which depends on CoreArrayProvider, while the new ArrayGuard only requires CoreArrayProvider and represents a non-owned array.
Diffstat (limited to 'rust/src/segment.rs')
-rw-r--r--rust/src/segment.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/rust/src/segment.rs b/rust/src/segment.rs
index b583e0e0..1dd3fb7f 100644
--- a/rust/src/segment.rs
+++ b/rust/src/segment.rs
@@ -187,16 +187,18 @@ unsafe impl RefCountable for Segment {
}
}
-unsafe impl CoreOwnedArrayProvider for Segment {
+impl CoreArrayProvider for Segment {
type Raw = *mut BNSegment;
type Context = ();
+}
+unsafe impl CoreOwnedArrayProvider for Segment {
unsafe fn free(raw: *mut Self::Raw, count: usize, _context: &Self::Context) {
BNFreeSegmentList(raw, count);
}
}
-unsafe impl<'a> CoreOwnedArrayWrapper<'a> for Segment {
+unsafe impl<'a> CoreArrayWrapper<'a> for Segment {
type Wrapped = Guard<'a, Segment>;
unsafe fn wrap_raw(raw: &'a Self::Raw, context: &'a Self::Context) -> Self::Wrapped {