Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ProductHeaderValue.cs
Go to the documentation of this file.
1
using
System.Diagnostics.CodeAnalysis
;
2
3
namespace
System.Net.Http.Headers
;
4
5
public
class
ProductHeaderValue
:
ICloneable
6
{
7
private
readonly
string
_name
;
8
9
private
readonly
string
_version
;
10
11
public
string
Name
=>
_name
;
12
13
public
string
?
Version
=>
_version
;
14
15
public
ProductHeaderValue
(
string
name)
16
: this(name, null)
17
{
18
}
19
20
public
ProductHeaderValue
(
string
name,
string
? version)
21
{
22
HeaderUtilities
.
CheckValidToken
(name,
"name"
);
23
if
(!
string
.IsNullOrEmpty(version))
24
{
25
HeaderUtilities
.
CheckValidToken
(version,
"version"
);
26
_version
= version;
27
}
28
_name
= name;
29
}
30
31
private
ProductHeaderValue
(
ProductHeaderValue
source
)
32
{
33
_name
=
source
._name;
34
_version
=
source
._version;
35
}
36
37
public
override
string
ToString
()
38
{
39
if
(
string
.IsNullOrEmpty(
_version
))
40
{
41
return
_name
;
42
}
43
return
_name
+
"/"
+
_version
;
44
}
45
46
public
override
bool
Equals
([NotNullWhen(
true
)]
object
?
obj
)
47
{
48
if
(!(
obj
is
ProductHeaderValue
productHeaderValue))
49
{
50
return
false
;
51
}
52
if
(
string
.
Equals
(
_name
, productHeaderValue._name,
StringComparison
.OrdinalIgnoreCase))
53
{
54
return
string
.Equals(
_version
, productHeaderValue._version,
StringComparison
.OrdinalIgnoreCase);
55
}
56
return
false
;
57
}
58
59
public
override
int
GetHashCode
()
60
{
61
int
num =
StringComparer
.
OrdinalIgnoreCase
.GetHashCode(
_name
);
62
if
(!
string
.IsNullOrEmpty(
_version
))
63
{
64
num ^=
StringComparer
.
OrdinalIgnoreCase
.GetHashCode(
_version
);
65
}
66
return
num;
67
}
68
69
public
static
ProductHeaderValue
Parse
(
string
?
input
)
70
{
71
int
index
= 0;
72
return
(
ProductHeaderValue
)
GenericHeaderParser
.
SingleValueProductParser
.ParseValue(
input
,
null
, ref
index
);
73
}
74
75
public
static
bool
TryParse
([NotNullWhen(
true
)]
string
?
input
, [NotNullWhen(
true
)] out
ProductHeaderValue
? parsedValue)
76
{
77
int
index
= 0;
78
parsedValue =
null
;
79
if
(
GenericHeaderParser
.
SingleValueProductParser
.TryParseValue(
input
,
null
, ref
index
, out var parsedValue2))
80
{
81
parsedValue = (
ProductHeaderValue
)parsedValue2;
82
return
true
;
83
}
84
return
false
;
85
}
86
87
internal
static
int
GetProductLength
(
string
input
,
int
startIndex
, out
ProductHeaderValue
parsedValue)
88
{
89
parsedValue =
null
;
90
if
(
string
.IsNullOrEmpty(
input
) ||
startIndex
>=
input
.Length)
91
{
92
return
0;
93
}
94
int
tokenLength =
HttpRuleParser
.
GetTokenLength
(
input
,
startIndex
);
95
if
(tokenLength == 0)
96
{
97
return
0;
98
}
99
string
name =
input
.Substring(
startIndex
, tokenLength);
100
int
num =
startIndex
+ tokenLength;
101
num +=
HttpRuleParser
.
GetWhitespaceLength
(
input
, num);
102
if
(num ==
input
.Length ||
input
[num] !=
'/'
)
103
{
104
parsedValue =
new
ProductHeaderValue
(name);
105
return
num -
startIndex
;
106
}
107
num++;
108
num +=
HttpRuleParser
.
GetWhitespaceLength
(
input
, num);
109
int
tokenLength2 =
HttpRuleParser
.
GetTokenLength
(
input
, num);
110
if
(tokenLength2 == 0)
111
{
112
return
0;
113
}
114
string
version =
input
.Substring(num, tokenLength2);
115
num += tokenLength2;
116
num +=
HttpRuleParser
.
GetWhitespaceLength
(
input
, num);
117
parsedValue =
new
ProductHeaderValue
(name, version);
118
return
num -
startIndex
;
119
}
120
121
object
ICloneable
.
Clone
()
122
{
123
return
new
ProductHeaderValue
(
this
);
124
}
125
}
System.Net.Http.Headers.GenericHeaderParser.SingleValueProductParser
static readonly GenericHeaderParser SingleValueProductParser
Definition
GenericHeaderParser.cs:23
System.Net.Http.Headers.GenericHeaderParser
Definition
GenericHeaderParser.cs:6
System.Net.Http.Headers.HeaderUtilities.CheckValidToken
static void CheckValidToken(string value, string parameterName)
Definition
HeaderUtilities.cs:105
System.Net.Http.Headers.HeaderUtilities
Definition
HeaderUtilities.cs:9
System.Net.Http.Headers.ProductHeaderValue.GetHashCode
override int GetHashCode()
Definition
ProductHeaderValue.cs:59
System.Net.Http.Headers.ProductHeaderValue.Name
string Name
Definition
ProductHeaderValue.cs:11
System.Net.Http.Headers.ProductHeaderValue._name
readonly string _name
Definition
ProductHeaderValue.cs:7
System.Net.Http.Headers.ProductHeaderValue.Equals
override bool Equals([NotNullWhen(true)] object? obj)
Definition
ProductHeaderValue.cs:46
System.Net.Http.Headers.ProductHeaderValue._version
readonly string _version
Definition
ProductHeaderValue.cs:9
System.Net.Http.Headers.ProductHeaderValue.GetProductLength
static int GetProductLength(string input, int startIndex, out ProductHeaderValue parsedValue)
Definition
ProductHeaderValue.cs:87
System.Net.Http.Headers.ProductHeaderValue.Parse
static ProductHeaderValue Parse(string? input)
Definition
ProductHeaderValue.cs:69
System.Net.Http.Headers.ProductHeaderValue.ProductHeaderValue
ProductHeaderValue(string name)
Definition
ProductHeaderValue.cs:15
System.Net.Http.Headers.ProductHeaderValue.ToString
override string ToString()
Definition
ProductHeaderValue.cs:37
System.Net.Http.Headers.ProductHeaderValue.ProductHeaderValue
ProductHeaderValue(ProductHeaderValue source)
Definition
ProductHeaderValue.cs:31
System.Net.Http.Headers.ProductHeaderValue.ProductHeaderValue
ProductHeaderValue(string name, string? version)
Definition
ProductHeaderValue.cs:20
System.Net.Http.Headers.ProductHeaderValue.TryParse
static bool TryParse([NotNullWhen(true)] string? input, [NotNullWhen(true)] out ProductHeaderValue? parsedValue)
Definition
ProductHeaderValue.cs:75
System.Net.Http.Headers.ProductHeaderValue
Definition
ProductHeaderValue.cs:6
System.Net.Http.HttpRuleParser.GetTokenLength
static int GetTokenLength(string input, int startIndex)
Definition
HttpRuleParser.cs:47
System.Net.Http.HttpRuleParser.GetWhitespaceLength
static int GetWhitespaceLength(string input, int startIndex)
Definition
HttpRuleParser.cs:92
System.Net.Http.HttpRuleParser
Definition
HttpRuleParser.cs:6
System.StringComparer.OrdinalIgnoreCase
static StringComparer OrdinalIgnoreCase
Definition
StringComparer.cs:23
System.StringComparer
Definition
StringComparer.cs:12
System.Version
Definition
Version.cs:10
System.ICloneable.Clone
object Clone()
System.ICloneable
Definition
ICloneable.cs:4
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Net.Http.Headers
Definition
AltSvcHeaderParser.cs:4
System.Net.CookieToken.Equals
@ Equals
System.ExceptionArgument.startIndex
@ startIndex
System.ExceptionArgument.source
@ source
System.ExceptionArgument.index
@ index
System.ExceptionArgument.input
@ input
System.ExceptionArgument.obj
@ obj
System.StringComparison
StringComparison
Definition
StringComparison.cs:4
source
System.Net.Http
System.Net.Http.Headers
ProductHeaderValue.cs
Generated by
1.10.0