MCPcopy Create free account
hub / github.com/Snapchat/Valdi / resolve

Method resolve

valdi/src/valdi/runtime/Resources/AssetResolver.cpp:36–57  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34}
35
36Ref<Asset> AssetResolver::resolve(ResourceManager& resourceManager, const Value& value) {
37 if (value.isValdiObject()) {
38 return castOrNull<Asset>(value.getValdiObject());
39 }
40
41 auto str = value.toStringBox();
42
43 const auto& assetsManager = resourceManager.getAssetsManager();
44
45 if (AssetsManager::isAssetUrl(str)) {
46 return assetsManager->getAsset(AssetKey(str));
47 }
48
49 auto moduleSeparator = str.indexOf(':');
50 if (moduleSeparator) {
51 // Module is explicitly specified
52 auto pair = str.split(*moduleSeparator);
53 return resolveFromModuleAndAssetName(resourceManager, assetsManager, pair.first.trimmed(), pair.second);
54 }
55
56 return nullptr;
57}
58
59Result<Ref<Asset>> AssetResolver::resolve(ViewNode& viewNode, const Value& value) {
60 auto* viewNodeTree = viewNode.getViewNodeTree();

Callers

nothing calls this directly

Calls 15

AssetKeyClass · 0.85
isValdiObjectMethod · 0.80
splitMethod · 0.80
trimmedMethod · 0.80
getViewNodeTreeMethod · 0.80
ErrorInterface · 0.50
resolveFunction · 0.50
getValdiObjectMethod · 0.45
toStringBoxMethod · 0.45
getAssetsManagerMethod · 0.45
getAssetMethod · 0.45

Tested by

no test coverage detected