pub struct BlockBase<'blk> {
pub id: BlockId,
pub node: HirNode<'blk>,
pub kind: BlockKind,
pub parent: RwLock<Option<BlockId>>,
pub children: RwLock<Vec<BlockId>>,
pub symbol: Option<&'blk Symbol>,
pub type_deps: RwLock<HashSet<BlockId>>,
}Fields§
§id: BlockId§node: HirNode<'blk>§kind: BlockKind§parent: RwLock<Option<BlockId>>§children: RwLock<Vec<BlockId>>§symbol: Option<&'blk Symbol>Direct reference to the symbol that defines this block. Set during block building. Enables: block.symbol().type_of().block_id()
type_deps: RwLock<HashSet<BlockId>>Types this block depends on (used for arch graph edges)
For impl blocks: type arguments from trait reference (e.g., User in impl Repository<User>)
For structs/enums: could include generic bounds or trait objects
Implementations§
Source§impl<'blk> BlockBase<'blk>
impl<'blk> BlockBase<'blk>
pub fn new( id: BlockId, node: HirNode<'blk>, kind: BlockKind, parent: Option<BlockId>, children: Vec<BlockId>, ) -> Self
Sourcepub fn with_symbol(
id: BlockId,
node: HirNode<'blk>,
kind: BlockKind,
parent: Option<BlockId>,
children: Vec<BlockId>,
symbol: Option<&'blk Symbol>,
) -> Self
pub fn with_symbol( id: BlockId, node: HirNode<'blk>, kind: BlockKind, parent: Option<BlockId>, children: Vec<BlockId>, symbol: Option<&'blk Symbol>, ) -> Self
Create a new BlockBase with symbol reference
pub fn opt_get_name(&self) -> Option<&str>
pub fn add_child(&self, child_id: BlockId)
pub fn remove_child(&self, child_id: BlockId)
pub fn get_children(&self) -> Vec<BlockId>
pub fn set_parent(&self, parent_id: BlockId)
pub fn get_parent(&self) -> Option<BlockId>
Sourcepub fn add_type_dep(&self, type_id: BlockId)
pub fn add_type_dep(&self, type_id: BlockId)
Add a type dependency to this block
Sourcepub fn get_type_deps(&self) -> HashSet<BlockId>
pub fn get_type_deps(&self) -> HashSet<BlockId>
Get all type dependencies for this block
Trait Implementations§
Auto Trait Implementations§
impl<'blk> !Freeze for BlockBase<'blk>
impl<'blk> !RefUnwindSafe for BlockBase<'blk>
impl<'blk> Send for BlockBase<'blk>
impl<'blk> Sync for BlockBase<'blk>
impl<'blk> Unpin for BlockBase<'blk>
impl<'blk> !UnwindSafe for BlockBase<'blk>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more