1#![allow(clippy::missing_errors_doc)]
8
9use crate::error::WasmError;
10use crate::kernel::BrepKernel;
11
12impl BrepKernel {
15 pub fn resolve_face(&self, handle: u32) -> Result<brepkit_topology::face::FaceId, WasmError> {
17 let index = handle as usize;
18 self.topo
19 .face_id_from_index(index)
20 .ok_or(WasmError::InvalidHandle {
21 entity: "face",
22 index,
23 })
24 }
25
26 pub fn resolve_vertex(
28 &self,
29 handle: u32,
30 ) -> Result<brepkit_topology::vertex::VertexId, WasmError> {
31 let index = handle as usize;
32 self.topo
33 .vertex_id_from_index(index)
34 .ok_or(WasmError::InvalidHandle {
35 entity: "vertex",
36 index,
37 })
38 }
39
40 pub fn resolve_edge(&self, handle: u32) -> Result<brepkit_topology::edge::EdgeId, WasmError> {
42 let index = handle as usize;
43 self.topo
44 .edge_id_from_index(index)
45 .ok_or(WasmError::InvalidHandle {
46 entity: "edge",
47 index,
48 })
49 }
50
51 pub fn resolve_solid(
53 &self,
54 handle: u32,
55 ) -> Result<brepkit_topology::solid::SolidId, WasmError> {
56 let index = handle as usize;
57 self.topo
58 .solid_id_from_index(index)
59 .ok_or(WasmError::InvalidHandle {
60 entity: "solid",
61 index,
62 })
63 }
64
65 pub fn resolve_wire(&self, handle: u32) -> Result<brepkit_topology::wire::WireId, WasmError> {
67 let index = handle as usize;
68 self.topo
69 .wire_id_from_index(index)
70 .ok_or(WasmError::InvalidHandle {
71 entity: "wire",
72 index,
73 })
74 }
75
76 pub fn resolve_shell(
78 &self,
79 handle: u32,
80 ) -> Result<brepkit_topology::shell::ShellId, WasmError> {
81 let index = handle as usize;
82 self.topo
83 .shell_id_from_index(index)
84 .ok_or(WasmError::InvalidHandle {
85 entity: "shell",
86 index,
87 })
88 }
89
90 pub fn resolve_compound(
92 &self,
93 handle: u32,
94 ) -> Result<brepkit_topology::compound::CompoundId, WasmError> {
95 let index = handle as usize;
96 self.topo
97 .compound_id_from_index(index)
98 .ok_or(WasmError::InvalidHandle {
99 entity: "compound",
100 index,
101 })
102 }
103}
104
105#[allow(clippy::cast_possible_truncation)]
109pub const fn face_id_to_u32(id: brepkit_topology::face::FaceId) -> u32 {
110 id.index() as u32
111}
112
113#[allow(clippy::cast_possible_truncation)]
115pub const fn solid_id_to_u32(id: brepkit_topology::solid::SolidId) -> u32 {
116 id.index() as u32
117}
118
119#[allow(clippy::cast_possible_truncation)]
121pub const fn vertex_id_to_u32(id: brepkit_topology::vertex::VertexId) -> u32 {
122 id.index() as u32
123}
124
125#[allow(clippy::cast_possible_truncation)]
127pub const fn edge_id_to_u32(id: brepkit_topology::edge::EdgeId) -> u32 {
128 id.index() as u32
129}
130
131#[allow(clippy::cast_possible_truncation)]
133pub const fn wire_id_to_u32(id: brepkit_topology::wire::WireId) -> u32 {
134 id.index() as u32
135}
136
137#[allow(clippy::cast_possible_truncation)]
139pub const fn shell_id_to_u32(id: brepkit_topology::shell::ShellId) -> u32 {
140 id.index() as u32
141}
142
143#[allow(clippy::cast_possible_truncation)]
145pub const fn compound_id_to_u32(id: brepkit_topology::compound::CompoundId) -> u32 {
146 id.index() as u32
147}