Skip to main content

luaur_web/methods/
demo_file_resolver_read_source.rs

1//! `DemoFileResolver::readSource` (`CLI/src/Web.cpp:18-25`).
2//!
3//! ```cpp
4//! std::optional<Luau::SourceCode> readSource(const Luau::ModuleName& name) override
5//! {
6//!     auto it = source.find(name);
7//!     if (it == source.end())
8//!         return std::nullopt;
9//!
10//!     return Luau::SourceCode{it->second, Luau::SourceCode::Module};
11//! }
12//! ```
13
14use crate::records::demo_file_resolver::DemoFileResolver;
15use luaur_analysis::records::source_code::SourceCode;
16use luaur_analysis::type_aliases::module_name_file_resolver::ModuleName;
17
18impl DemoFileResolver {
19    pub fn read_source(&self, name: &ModuleName) -> Option<SourceCode> {
20        let it = self.source.get(name)?;
21        Some(SourceCode {
22            source: it.clone(),
23            r#type: SourceCode::Module,
24        })
25    }
26}