Remove custom OptionalType and use the default c# nullable type.

This commit is contained in:
hondacrx
2022-03-01 17:27:56 -05:00
parent cc08afe269
commit c14f1eb3dc
89 changed files with 924 additions and 976 deletions
-63
View File
@@ -1,63 +0,0 @@
/*
* Copyright (C) 2012-2020 CypherCore <http://github.com/CypherCore>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
namespace Framework.Dynamic
{
public struct Optional<T>
{
private bool _hasValue;
public T Value;
public Optional(T value)
{
Value = value;
_hasValue = true;
}
public bool HasValue
{
get { return _hasValue; }
}
public void Set(T value)
{
Value = value;
_hasValue = true;
}
public void Clear()
{
_hasValue = false;
Value = default;
}
public T ValueOr(T otherValue)
{
return HasValue ? Value : otherValue;
}
public static explicit operator T(Optional<T> optional)
{
return optional.Value;
}
public static implicit operator Optional<T>(T value)
{
return new Optional<T>(value);
}
}
}
+5 -5
View File
@@ -403,7 +403,7 @@ namespace Framework.Dynamic
{
_end = end;
_duration = duration;
_group.Set(group);
_group = group;
_repeated = repeated;
_task = task;
}
@@ -427,12 +427,12 @@ namespace Framework.Dynamic
/// <returns></returns>
public bool IsInGroup(uint group)
{
return _group.HasValue && _group.Value == group;
return _group.HasValue && _group == group;
}
internal DateTime _end;
internal TimeSpan _duration;
internal Optional<uint> _group;
internal uint? _group;
internal uint _repeated;
internal Action<TaskContext> _task;
}
@@ -551,7 +551,7 @@ namespace Framework.Dynamic
/// <returns></returns>
TaskContext SetGroup(uint group)
{
_task._group.Set(group);
_task._group = group;
return this;
}
@@ -561,7 +561,7 @@ namespace Framework.Dynamic
/// <returns></returns>
TaskContext ClearGroup()
{
_task._group.Clear();
_task._group = null;
return this;
}