Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
RangeHeaderValue.cs
Go to the documentation of this file.
3using System.Text;
4
6
8{
9 private string _unit;
10
12
13 public string Unit
14 {
15 get
16 {
17 return _unit;
18 }
19 set
20 {
22 _unit = value;
23 }
24 }
25
27
29 {
30 _unit = "bytes";
31 }
32
33 public RangeHeaderValue(long? from, long? to)
34 {
35 _unit = "bytes";
37 }
38
40 {
41 _unit = source._unit;
42 if (source._ranges == null)
43 {
44 return;
45 }
46 foreach (RangeItemHeaderValue range in source._ranges)
47 {
49 }
50 }
51
52 public override string ToString()
53 {
55 stringBuilder.Append(_unit);
56 stringBuilder.Append('=');
57 if (_ranges != null)
58 {
59 bool flag = true;
61 {
62 if (flag)
63 {
64 flag = false;
65 }
66 else
67 {
68 stringBuilder.Append(", ");
69 }
70 if (range.From.HasValue)
71 {
72 stringBuilder.Append(range.From.GetValueOrDefault());
73 }
74 stringBuilder.Append('-');
75 if (range.To.HasValue)
76 {
77 stringBuilder.Append(range.To.GetValueOrDefault());
78 }
79 }
80 }
82 }
83
84 public override bool Equals([NotNullWhen(true)] object? obj)
85 {
87 {
88 return false;
89 }
90 if (string.Equals(_unit, rangeHeaderValue._unit, StringComparison.OrdinalIgnoreCase))
91 {
92 return HeaderUtilities.AreEqualCollections(_ranges, rangeHeaderValue._ranges);
93 }
94 return false;
95 }
96
97 public override int GetHashCode()
98 {
99 int num = StringComparer.OrdinalIgnoreCase.GetHashCode(_unit);
100 if (_ranges != null)
101 {
103 {
104 num ^= range.GetHashCode();
105 }
106 }
107 return num;
108 }
109
110 public static RangeHeaderValue Parse(string? input)
111 {
112 int index = 0;
114 }
115
116 public static bool TryParse([NotNullWhen(true)] string? input, [NotNullWhen(true)] out RangeHeaderValue? parsedValue)
117 {
118 int index = 0;
119 parsedValue = null;
121 {
123 return true;
124 }
125 return false;
126 }
127
128 internal static int GetRangeLength(string input, int startIndex, out object parsedValue)
129 {
130 parsedValue = null;
131 if (string.IsNullOrEmpty(input) || startIndex >= input.Length)
132 {
133 return 0;
134 }
136 if (tokenLength == 0)
137 {
138 return 0;
139 }
141 rangeHeaderValue._unit = input.Substring(startIndex, tokenLength);
142 int num = startIndex + tokenLength;
144 if (num == input.Length || input[num] != '=')
145 {
146 return 0;
147 }
148 num++;
151 if (rangeItemListLength == 0)
152 {
153 return 0;
154 }
155 num += rangeItemListLength;
157 return num - startIndex;
158 }
159
161 {
162 return new RangeHeaderValue(this);
163 }
164}
void Add(TKey key, TValue value)
static readonly GenericHeaderParser RangeParser
static void CheckValidToken(string value, string parameterName)
ObjectCollection< RangeItemHeaderValue > _ranges
static RangeHeaderValue Parse(string? input)
static bool TryParse([NotNullWhen(true)] string? input, [NotNullWhen(true)] out RangeHeaderValue? parsedValue)
static int GetRangeLength(string input, int startIndex, out object parsedValue)
ICollection< RangeItemHeaderValue > Ranges
override bool Equals([NotNullWhen(true)] object? obj)
static int GetRangeItemListLength(string input, int startIndex, ICollection< RangeItemHeaderValue > rangeCollection)
static int GetTokenLength(string input, int startIndex)
static int GetWhitespaceLength(string input, int startIndex)
static StringComparer OrdinalIgnoreCase
static string GetStringAndRelease(StringBuilder sb)
static StringBuilder Acquire(int capacity=16)