tgstation-server
6.19.0
The /tg/station 13 server suite
Loading...
Searching...
No Matches
src
Tgstation.Server.Host
Security
RightsEvaluation
FlagRightsConditional{TRights}.cs
Go to the documentation of this file.
1
using
System;
2
3
namespace
Tgstation.Server.Host.Security.RightsEvaluation
4
{
10
public
sealed
class
FlagRightsConditional
<TRights> :
RightsConditional
<TRights>
11
where TRights : Enum
12
{
16
readonly TRights
flag
;
17
22
public
FlagRightsConditional
(TRights
flag
)
23
{
24
var asUlong = (ulong)(
object
)
flag
;
25
26
if
(asUlong == 0)
27
throw
new
ArgumentOutOfRangeException(nameof(
flag
),
flag
,
"Flag cannot be zero!"
);
28
29
// https://stackoverflow.com/a/28303898/3976486
30
if
((asUlong & (asUlong - 1)) != 0)
31
throw
new
ArgumentException(
"Right has more than one bit set!"
, nameof(
flag
));
32
33
this.flag =
flag
;
34
}
35
37
public
override
bool
Evaluate
(TRights rights)
38
=> rights.HasFlag(
flag
);
39
41
public
override
string
ToString
()
42
=> $
"{typeof(TRights).Name}.{flag}"
;
43
}
44
}
Tgstation.Server.Host.Security.RightsEvaluation.FlagRightsConditional
Single flag RightsConditional<TRights>.
Definition
FlagRightsConditional{TRights}.cs:12
Tgstation.Server.Host.Security.RightsEvaluation.FlagRightsConditional.ToString
override string ToString()
Tgstation.Server.Host.Security.RightsEvaluation.FlagRightsConditional.flag
readonly TRights flag
The single bit flag of the TRights .
Definition
FlagRightsConditional{TRights}.cs:16
Tgstation.Server.Host.Security.RightsEvaluation.FlagRightsConditional.FlagRightsConditional
FlagRightsConditional(TRights flag)
Initializes a new instance of the FlagRightsConditional<TRights> class.
Definition
FlagRightsConditional{TRights}.cs:22
Tgstation.Server.Host.Security.RightsEvaluation.FlagRightsConditional.Evaluate
override bool Evaluate(TRights rights)
Tgstation.Server.Host.Security.RightsEvaluation.RightsConditional
An conditional expression of TRights .
Definition
RightsConditional{TRights}.cs:13
Tgstation.Server.Host.Security.RightsEvaluation
Definition
AndRightsConditional{TRights}.cs:4
Generated by
1.9.8