rustdv_sim/handle/
aggregate.rs1use rustdv_gpi as gpi;
4
5use crate::handle::{HandleBase, HandleChildren, HandleError, SimHandle};
6
7#[derive(Copy, Clone)]
9pub struct AggregateHandle {
10 pub(super) raw: gpi::AggregateHandle,
11}
12
13impl From<gpi::AggregateHandle> for AggregateHandle {
14 fn from(raw: gpi::AggregateHandle) -> Self {
15 AggregateHandle { raw }
16 }
17}
18
19impl HandleChildren for AggregateHandle {
20 fn child(&self, name: &str) -> Result<SimHandle, HandleError> {
21 Ok(SimHandle::wrap(self.raw.child(name)?))
22 }
23
24 fn children(&self) -> Vec<SimHandle> {
25 self.raw
26 .children()
27 .into_iter()
28 .map(SimHandle::wrap)
29 .collect()
30 }
31}
32
33impl HandleBase for AggregateHandle {
34 fn name(&self) -> String {
35 self.raw.name()
36 }
37
38 fn full_name(&self) -> String {
39 self.raw.full_name()
40 }
41}