Extract an enum specifier.
(
&self,
node: &Node,
source: &str,
file_path: &str,
scope: Option<&str>,
)
| 446 | |
| 447 | /// Extract an enum specifier. |
| 448 | fn extract_enum( |
| 449 | &self, |
| 450 | node: &Node, |
| 451 | source: &str, |
| 452 | file_path: &str, |
| 453 | scope: Option<&str>, |
| 454 | ) -> Option<Entity> { |
| 455 | let name_node = node.child_by_field_name("name")?; |
| 456 | let name = self.node_text(&name_node, source); |
| 457 | |
| 458 | if name.is_empty() { |
| 459 | return None; |
| 460 | } |
| 461 | |
| 462 | let line = node.start_position().row as u32 + 1; |
| 463 | let end_line = node.end_position().row as u32 + 1; |
| 464 | |
| 465 | let full_name = match scope { |
| 466 | Some(s) => format!("{}::{}", s, name), |
| 467 | None => name.clone(), |
| 468 | }; |
| 469 | |
| 470 | let signature = format!("enum {}", name); |
| 471 | |
| 472 | let mut entity = Entity::new(full_name, EntityKind::Enum, file_path, line, end_line); |
| 473 | entity = entity.with_signature(signature); |
| 474 | entity.exported = true; |
| 475 | |
| 476 | Some(entity) |
| 477 | } |
| 478 | |
| 479 | /// Extract a C++ type alias (`using X = Y;`). |
| 480 | fn extract_type_alias( |
no test coverage detected