luaur_analyze_cli/methods/
cli_file_resolver_read_source.rs1use crate::records::cli_file_resolver::CliFileResolver;
2use luaur_analysis::enums::type_file_resolver::Type;
3use luaur_analysis::records::source_code::SourceCode;
4use luaur_analysis::type_aliases::module_name_file_resolver::ModuleName;
5use luaur_cli_lib::functions::read_file::read_file;
6use luaur_cli_lib::functions::read_stdin::read_stdin;
7
8impl CliFileResolver {
9 pub unsafe fn read_source(&mut self, name: &ModuleName) -> Option<SourceCode> {
10 let source_type: Type;
11 let source: Option<alloc::string::String>;
12
13 if name == "-" {
15 source = read_stdin();
16 source_type = Type::Script;
17 } else {
18 source = read_file(name);
19 source_type = Type::Module;
20 }
21
22 if let Some(source_str) = source {
23 Some(SourceCode {
24 source: source_str,
25 r#type: source_type,
26 })
27 } else {
28 None
29 }
30 }
31}