webwire_cli/schema/
fqtn.rs1use crate::idl;
2
3use super::namespace::Namespace;
4
5#[derive(Clone, Debug, Eq, Hash, PartialEq)]
7pub struct FQTN {
8 pub ns: Vec<String>,
9 pub name: String,
10}
11
12impl FQTN {
13 pub fn new(name: &str, ns: &Namespace) -> Self {
14 Self {
15 ns: ns.path.clone(),
16 name: name.to_owned(),
17 }
18 }
19 pub fn from_idl(ityperef: &idl::TypeRef, ns: &Namespace) -> Self {
20 if ityperef.abs {
21 Self {
22 ns: ityperef.ns.clone(),
23 name: ityperef.name.clone(),
24 }
25 } else {
26 let mut ns = ns.path.clone();
27 ns.extend_from_slice(&ityperef.ns);
28 Self {
29 ns,
30 name: ityperef.name.clone(),
31 }
32 }
33 }
34}