yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

CopilotMerge NamePool and RootNamePool into a single type (#7797)3485710e9

master
876 B49 linesraw
1// slang-name.cpp
2#include "slang-name.h"
3
4namespace Slang
5{
6
7String getText(Name* name)
8{
9    if (!name)
10        return String();
11    return name->text;
12}
13
14UnownedStringSlice getUnownedStringSliceText(Name* name)
15{
16    return name ? name->text.getUnownedSlice() : UnownedStringSlice();
17}
18
19const char* getCstr(Name* name)
20{
21    return name ? name->text.getBuffer() : nullptr;
22}
23
24Name* NamePool::getName(UnownedStringSlice text)
25{
26    RefPtr<Name> name;
27    if (names.tryGetValue(text, name))
28        return name;
29
30    name = new Name();
31    name->text = text;
32    names.add(text, name);
33    return name;
34}
35
36Name* NamePool::getName(String const& text)
37{
38    return getName(text.getUnownedSlice());
39}
40
41Name* NamePool::tryGetName(String const& text)
42{
43    RefPtr<Name> name;
44    if (names.tryGetValue(text, name))
45        return name;
46    return nullptr;
47}
48
49} // namespace Slang