From ea7a22b16fc56c23af397dd690c6c839dfb3a8f1 Mon Sep 17 00:00:00 2001 From: Rubens Brandao Date: Fri, 3 May 2024 13:28:53 -0300 Subject: hide array implementation details --- rust/src/basicblock.rs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'rust/src/basicblock.rs') diff --git a/rust/src/basicblock.rs b/rust/src/basicblock.rs index f28e596f..a6ac8f74 100644 --- a/rust/src/basicblock.rs +++ b/rust/src/basicblock.rs @@ -68,17 +68,13 @@ pub struct EdgeContext<'a, C: 'a + BlockContext> { impl<'a, C: 'a + BlockContext> CoreArrayProvider for Edge<'a, C> { type Raw = BNBasicBlockEdge; type Context = EdgeContext<'a, C>; + type Wrapped<'b> = Edge<'b, C> where 'a: 'b; } -unsafe impl<'a, C: 'a + BlockContext> CoreOwnedArrayProvider for Edge<'a, C> { +unsafe impl<'a, C: 'a + BlockContext> CoreArrayProviderInner for Edge<'a, C> { unsafe fn free(raw: *mut Self::Raw, count: usize, _context: &Self::Context) { BNFreeBasicBlockEdgeList(raw, count); } -} - -unsafe impl<'a, C: BlockContext> CoreArrayWrapper for Edge<'a, C> { - type Wrapped<'b> = Edge<'b, C> where 'a: 'b; - unsafe fn wrap_raw<'b>(raw: &'b Self::Raw, context: &'b Self::Context) -> Self::Wrapped<'b> { let edge_target = Guard::new( BasicBlock::from_raw(raw.target, context.orig_block.context.clone()), @@ -301,17 +297,13 @@ unsafe impl RefCountable for BasicBlock { impl CoreArrayProvider for BasicBlock { type Raw = *mut BNBasicBlock; type Context = C; + type Wrapped<'a> = Guard<'a, BasicBlock> where C: 'a; } -unsafe impl CoreOwnedArrayProvider for BasicBlock { +unsafe impl CoreArrayProviderInner for BasicBlock { unsafe fn free(raw: *mut Self::Raw, count: usize, _context: &Self::Context) { BNFreeBasicBlockList(raw, count); } -} - -unsafe impl CoreArrayWrapper for BasicBlock { - type Wrapped<'a> = Guard<'a, BasicBlock> where C: 'a; - unsafe fn wrap_raw<'a>(raw: &'a Self::Raw, context: &'a Self::Context) -> Self::Wrapped<'a> { Guard::new(BasicBlock::from_raw(*raw, context.clone()), context) } -- cgit v1.3.1