UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AccessLevel.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2// uLang Compiler Public API
3
4#pragma once
5
8
9namespace uLang
10{
11 class CScope;
12
13 // Mostly a wrapper around SAccessLevel::EKind with the addition of an optional list of modules for the 'scoped' access level
15 {
16 enum class EKind : int8_t
17 {
18 // Unrestricted access
19 Public,
20 // Access limited to current module (default)
22 // Access limited to current class and any subclasses
24 // Access limited to current class
25 Private,
26 // Access is internal to a code-specified list of module references
27 Scoped,
28 // Access limited to Epic code. This is a temporary access level to be
29 // replaced by `scoped` access
31 };
32
34
35 // Only used when _Kind == SAccessLevel::EKind::Scoped
36 // Access is considered internal to all listed scopes.
38
43 : _Kind(Kind)
44 {}
45 SAccessLevel(const SAccessLevel&) = default;
47
48 friend bool operator!=(const SAccessLevel& Lhs, const SAccessLevel& Rhs)
49 {
50 return Lhs._Kind != Rhs._Kind
51 || Lhs._Scopes != Rhs._Scopes;
52 }
53
55
57 {
58 switch (AccessLevelKind)
59 {
60 case SAccessLevel::EKind::Public: return "public";
61 case SAccessLevel::EKind::Internal: return "internal";
62 case SAccessLevel::EKind::Protected: return "protected";
63 case SAccessLevel::EKind::Private: return "private";
64 case SAccessLevel::EKind::Scoped: return "scoped";
65 case SAccessLevel::EKind::EpicInternal: return "epic_internal";
66 default: ULANG_UNREACHABLE();
67 }
68 }
69 };
70}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ULANG_UNREACHABLE()
Definition Common.h:243
Definition Array.h:51
Definition ByteSwap.h:14
Definition VVMEngineEnvironment.h:23
Definition AccessLevel.h:15
EKind _Kind
Definition AccessLevel.h:33
SAccessLevel & operator=(const SAccessLevel &)=default
SAccessLevel(const SAccessLevel &)=default
static const char * KindAsCString(SAccessLevel::EKind AccessLevelKind)
Definition AccessLevel.h:56
SAccessLevel()
Definition AccessLevel.h:39
uLang::TArray< const CScope * > _Scopes
Definition AccessLevel.h:37
friend bool operator!=(const SAccessLevel &Lhs, const SAccessLevel &Rhs)
Definition AccessLevel.h:48
EKind
Definition AccessLevel.h:17
VERSECOMPILER_API CUTF8String AsCode() const
Definition AccessLevel.cpp:9
SAccessLevel(SAccessLevel::EKind Kind)
Definition AccessLevel.h:42