Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
bicameral::script::anonymous_namespace{luau_package.cpp} Namespace Reference

Classes

struct  Manifest
struct  OrderNode

Typedefs

using Contribution = std::map<std::string, std::map<std::string, ScriptValue>>

Enumerations

enum class  OrderState : uint8_t { Pending , Ordered , Rejected }

Functions

std::string ToUtf8String (const fs::path &path)
std::expected< std::string, std::string > ModulePath (std::string_view name)
ModuleResolver MakeResolver (const PackageSource &package)
std::expected< std::vector< std::string >, std::string > ReadNameList (const ScriptValue &list)
std::expected< Manifest, std::string > ParseManifest (const ScriptValue &table)
std::expected< Manifest, std::string > ReadManifest (LuauSandbox &sandbox, const PackageSource &package, const PackageLoadOptions &options)
bool DependsReady (const std::map< std::string, OrderNode > &nodes, const OrderNode &node, std::string *missingReason)
bool OrderStep (std::map< std::string, OrderNode > &nodes, std::vector< std::string > &order, PackageSetResult &result)
std::expected< Contribution, std::string > ReadContribution (const std::vector< ScriptValue > &values)
std::expected< Contribution, std::string > RunEntry (LuauSandbox &sandbox, const PackageSource &package, const Manifest &manifest)
std::string FindForbiddenOverrides (const PackageSetResult &result, const Contribution &contribution)
void MergeEntry (PackageSetResult &result, const std::string &category, const std::string &key, ScriptValue &&value, const std::string &package, MergeMode mode)
void Merge (PackageSetResult &result, const std::string &package, Contribution &&contribution, MergeMode mode)
std::string TypeCheckReason (std::vector< TypeDiagnostic > &&diagnostics, PackageSetResult &result)
std::string LoadOne (LuauSandbox &sandbox, const PackageSource &package, const Manifest &manifest, const std::set< std::string > &loaded, const PackageLoadOptions &options, PackageSetResult &result)

Variables

constexpr std::string_view MANIFEST_FILE = "package.luau"
constexpr std::string_view MODULE_EXTENSION = ".luau"
constexpr size_t MAX_NAME_LENGTH = 64
constexpr size_t MAX_LISTED_CONFLICTS = 3

Typedef Documentation

◆ Contribution

using bicameral::script::anonymous_namespace{luau_package.cpp}::Contribution = std::map<std::string, std::map<std::string, ScriptValue>>

Definition at line 33 of file luau_package.cpp.

Enumeration Type Documentation

◆ OrderState

enum class bicameral::script::anonymous_namespace{luau_package.cpp}::OrderState : uint8_t
strong
Enumerator
Pending 
Ordered 
Rejected 

Definition at line 151 of file luau_package.cpp.

Function Documentation

◆ DependsReady()

bool bicameral::script::anonymous_namespace{luau_package.cpp}::DependsReady ( const std::map< std::string, OrderNode > & nodes,
const OrderNode & node,
std::string * missingReason )

Definition at line 163 of file luau_package.cpp.

References bicameral::script::anonymous_namespace{luau_package.cpp}::Manifest::depends, DependsReady(), bicameral::script::anonymous_namespace{luau_package.cpp}::OrderNode::manifest, Ordered, and Rejected.

Referenced by DependsReady(), and OrderStep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FindForbiddenOverrides()

std::string bicameral::script::anonymous_namespace{luau_package.cpp}::FindForbiddenOverrides ( const PackageSetResult & result,
const Contribution & contribution )

Definition at line 265 of file luau_package.cpp.

References FindForbiddenOverrides(), MAX_LISTED_CONFLICTS, and bicameral::script::PackageSetResult::tables.

Referenced by FindForbiddenOverrides(), and LoadOne().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadOne()

std::string bicameral::script::anonymous_namespace{luau_package.cpp}::LoadOne ( LuauSandbox & sandbox,
const PackageSource & package,
const Manifest & manifest,
const std::set< std::string > & loaded,
const PackageLoadOptions & options,
PackageSetResult & result )

Definition at line 326 of file luau_package.cpp.

References bicameral::script::AddOnly, bicameral::script::LuauTypeChecker::CheckPackage(), bicameral::script::anonymous_namespace{luau_package.cpp}::Manifest::depends, bicameral::script::anonymous_namespace{luau_package.cpp}::Manifest::entry, FindForbiddenOverrides(), LoadOne(), Merge(), bicameral::script::PackageLoadOptions::mergeMode, bicameral::script::PackageSource::name, RunEntry(), bicameral::script::PackageLoadOptions::typeChecker, and TypeCheckReason().

Referenced by LoadOne().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeResolver()

ModuleResolver bicameral::script::anonymous_namespace{luau_package.cpp}::MakeResolver ( const PackageSource & package)

Definition at line 62 of file luau_package.cpp.

References bicameral::script::PackageSource::files, MakeResolver(), ModulePath(), and bicameral::script::PackageSource::name.

Referenced by MakeResolver(), and RunEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Merge()

void bicameral::script::anonymous_namespace{luau_package.cpp}::Merge ( PackageSetResult & result,
const std::string & package,
Contribution && contribution,
MergeMode mode )

Definition at line 306 of file luau_package.cpp.

References Merge(), and MergeEntry().

Referenced by LoadOne(), and Merge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MergeEntry()

void bicameral::script::anonymous_namespace{luau_package.cpp}::MergeEntry ( PackageSetResult & result,
const std::string & category,
const std::string & key,
ScriptValue && value,
const std::string & package,
MergeMode mode )

Definition at line 293 of file luau_package.cpp.

References MergeEntry(), bicameral::script::PackageSetResult::modifiedWorld, bicameral::script::OverrideMarked, bicameral::script::PackageSetResult::overrides, and bicameral::script::PackageSetResult::tables.

Referenced by Merge(), and MergeEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ModulePath()

std::expected< std::string, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::ModulePath ( std::string_view name)

Definition at line 44 of file luau_package.cpp.

References bicameral::script::IsValidPackageName(), MODULE_EXTENSION, and ModulePath().

Referenced by MakeResolver(), ModulePath(), and ParseManifest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OrderStep()

bool bicameral::script::anonymous_namespace{luau_package.cpp}::OrderStep ( std::map< std::string, OrderNode > & nodes,
std::vector< std::string > & order,
PackageSetResult & result )

Definition at line 185 of file luau_package.cpp.

References DependsReady(), Ordered, OrderStep(), Pending, Rejected, and bicameral::script::PackageSetResult::rejected.

Referenced by OrderStep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ParseManifest()

std::expected< Manifest, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::ParseManifest ( const ScriptValue & table)

◆ ReadContribution()

std::expected< Contribution, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::ReadContribution ( const std::vector< ScriptValue > & values)

Definition at line 221 of file luau_package.cpp.

References bicameral::script::ScriptValue::fields, bicameral::script::ScriptValue::IsString(), bicameral::script::IsValidPackageName(), bicameral::script::ScriptField::key, bicameral::script::ScriptValue::Nil, ReadContribution(), bicameral::script::ScriptValue::text, bicameral::script::ToDebugText(), and bicameral::script::ScriptField::value.

Referenced by ReadContribution(), and RunEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadManifest()

std::expected< Manifest, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::ReadManifest ( LuauSandbox & sandbox,
const PackageSource & package,
const PackageLoadOptions & options )

Definition at line 128 of file luau_package.cpp.

References bicameral::script::PackageLoadOptions::basePackage, bicameral::script::PackageSource::files, MANIFEST_FILE, bicameral::script::PackageSource::name, ParseManifest(), ReadManifest(), and bicameral::script::LuauSandbox::Run().

Referenced by ReadManifest().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadNameList()

std::expected< std::vector< std::string >, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::ReadNameList ( const ScriptValue & list)

Definition at line 78 of file luau_package.cpp.

References bicameral::script::ScriptValue::fields, bicameral::script::ScriptValue::IsNumber(), bicameral::script::ScriptValue::IsString(), bicameral::script::ScriptValue::IsTable(), bicameral::script::IsValidPackageName(), bicameral::script::ScriptField::key, bicameral::script::ScriptValue::number, ReadNameList(), bicameral::script::ScriptValue::text, and bicameral::script::ScriptField::value.

Referenced by ParseManifest(), and ReadNameList().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RunEntry()

std::expected< Contribution, std::string > bicameral::script::anonymous_namespace{luau_package.cpp}::RunEntry ( LuauSandbox & sandbox,
const PackageSource & package,
const Manifest & manifest )

Definition at line 246 of file luau_package.cpp.

References bicameral::script::anonymous_namespace{luau_package.cpp}::Manifest::entry, bicameral::script::PackageSource::files, MakeResolver(), MODULE_EXTENSION, bicameral::script::PackageSource::name, ReadContribution(), bicameral::script::LuauSandbox::Run(), and RunEntry().

Referenced by LoadOne(), and RunEntry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToUtf8String()

std::string bicameral::script::anonymous_namespace{luau_package.cpp}::ToUtf8String ( const fs::path & path)

Definition at line 35 of file luau_package.cpp.

References ToUtf8String().

Referenced by ToUtf8String().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypeCheckReason()

std::string bicameral::script::anonymous_namespace{luau_package.cpp}::TypeCheckReason ( std::vector< TypeDiagnostic > && diagnostics,
PackageSetResult & result )

Definition at line 315 of file luau_package.cpp.

References bicameral::script::SummarizeDiagnostics(), TypeCheckReason(), and bicameral::script::PackageSetResult::typeDiagnostics.

Referenced by LoadOne(), and TypeCheckReason().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ MANIFEST_FILE

std::string_view bicameral::script::anonymous_namespace{luau_package.cpp}::MANIFEST_FILE = "package.luau"
constexpr

Definition at line 22 of file luau_package.cpp.

Referenced by ReadManifest().

◆ MAX_LISTED_CONFLICTS

size_t bicameral::script::anonymous_namespace{luau_package.cpp}::MAX_LISTED_CONFLICTS = 3
constexpr

Definition at line 25 of file luau_package.cpp.

Referenced by FindForbiddenOverrides().

◆ MAX_NAME_LENGTH

size_t bicameral::script::anonymous_namespace{luau_package.cpp}::MAX_NAME_LENGTH = 64
constexpr

Definition at line 24 of file luau_package.cpp.

◆ MODULE_EXTENSION

std::string_view bicameral::script::anonymous_namespace{luau_package.cpp}::MODULE_EXTENSION = ".luau"
constexpr

Definition at line 23 of file luau_package.cpp.

Referenced by ModulePath(), and RunEntry().