yog_script_analyze/
yog.rs1use yog_event::java;
6
7use crate::typeck::surface::SURFACE;
8
9pub struct Service {
11 pub record: String,
13 pub on_handle: bool,
16}
17
18pub fn service(group: &str, method: &str) -> Option<Service> {
20 let m = SURFACE.groups.get(group)?.methods.get(method)?.first()?;
21 Some(Service {
22 record: format!(
23 "{}.{}.{}",
24 java::PACKAGE,
25 java::SERVICES,
26 java::record_path(m.domain, method)
27 ),
28 on_handle: is_handle(group),
29 })
30}
31
32pub fn event(group: &str, name: &str) -> Option<String> {
34 let plane = SURFACE.groups.get(group)?.planes.get(name)?;
35 Some(format!(
36 "{}.{}.{}",
37 java::PACKAGE,
38 java::EVENTS,
39 java::record_path(plane, name)
40 ))
41}
42
43pub fn data(name: &str) -> Option<String> {
45 if let Some((plane, event)) = SURFACE.args_planes.get(name) {
46 return Some(format!(
47 "{}.{}.{}",
48 java::PACKAGE,
49 java::EVENTS,
50 java::record_path(plane, event)
51 ));
52 }
53 let s = SURFACE.structs.get(name)?;
54 Some(format!("{}.{}.{}", java::PACKAGE, java::TYPES, s.name))
55}
56
57pub fn field(name: &str) -> String {
60 java::field(&yog_codegen::snake(name))
61}
62
63pub fn is_handle(name: &str) -> bool {
66 yog_event::SUBJECTS.iter().any(|(_, h)| *h == name)
67}