Skip to main content

luaur_analysis/records/
null_file_resolver.rs

1use crate::records::file_resolver::{FileResolver, FileResolverVtable};
2use crate::records::source_code::SourceCode;
3use crate::type_aliases::module_name_file_resolver::ModuleName;
4
5#[derive(Debug)]
6#[repr(C)]
7pub struct NullFileResolver {
8    pub base: FileResolver,
9}
10
11pub(crate) unsafe fn null_file_resolver_read_source(
12    _this: *mut FileResolver,
13    _name: &ModuleName,
14) -> Option<SourceCode> {
15    None
16}
17
18impl NullFileResolver {
19    pub fn new() -> Self {
20        use crate::records::file_resolver::{
21            file_resolver_get_environment_for_module_default,
22            file_resolver_get_human_readable_module_name_default,
23            file_resolver_resolve_module_default,
24        };
25
26        let vtable = FileResolverVtable {
27            read_source: null_file_resolver_read_source,
28            resolve_module: file_resolver_resolve_module_default,
29            get_human_readable_module_name: file_resolver_get_human_readable_module_name_default,
30            get_environment_for_module: file_resolver_get_environment_for_module_default,
31        };
32
33        NullFileResolver {
34            base: FileResolver {
35                vtable,
36                require_suggester: None,
37            },
38        }
39    }
40}