/
crypt
/
NumbersPlay
Обзор
Документация
Войти
/
crypt
/
NumbersPlay
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Assets/Plugins/UniTask/Runtime/Linq/Cast.cs
53 строки
1 KB
Crypt
start
16 ноя 2025, 14:28
16 ноя 2025, 14:28
1482007
Код
Авторство
О чём код?
using Cysharp.Threading.Tasks.Internal; using System; using System.Threading; namespace Cysharp.Threading.Tasks.Linq { public static partial class UniTaskAsyncEnumerable { public static IUniTaskAsyncEnumerable<TResult> Cast<TResult>(this IUniTaskAsyncEnumerable<Object> source) { Error.ThrowArgumentNullException(source, nameof(source)); return new Cast<TResult>(source); } } internal sealed class Cast<TResult> : IUniTaskAsyncEnumerable<TResult> { readonly IUniTaskAsyncEnumerable<object> source; public Cast(IUniTaskAsyncEnumerable<object> source) { this.source = source; } public IUniTaskAsyncEnumerator<TResult> GetAsyncEnumerator(CancellationToken cancellationToken = default) { return new _Cast(source, cancellationToken); } class _Cast : AsyncEnumeratorBase<object, TResult> { public _Cast(IUniTaskAsyncEnumerable<object> source, CancellationToken cancellationToken) : base(source, cancellationToken) { } protected override bool TryMoveNextCore(bool sourceHasCurrent, out bool result) { if (sourceHasCurrent) { Current = (TResult)SourceCurrent; result = true; return true; } result = false; return true; } } } }