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}