| using System.Threading; | 
|   | 
| namespace Cysharp.Threading.Tasks.Linq | 
| { | 
|     public static partial class UniTaskAsyncEnumerable | 
|     { | 
|         public static IUniTaskAsyncEnumerable<T> Empty<T>() | 
|         { | 
|             return Cysharp.Threading.Tasks.Linq.Empty<T>.Instance; | 
|         } | 
|     } | 
|   | 
|     internal class Empty<T> : IUniTaskAsyncEnumerable<T> | 
|     { | 
|         public static readonly IUniTaskAsyncEnumerable<T> Instance = new Empty<T>(); | 
|   | 
|         Empty() | 
|         { | 
|         } | 
|   | 
|         public IUniTaskAsyncEnumerator<T> GetAsyncEnumerator(CancellationToken cancellationToken = default) | 
|         { | 
|             return _Empty.Instance; | 
|         } | 
|   | 
|         class _Empty : IUniTaskAsyncEnumerator<T> | 
|         { | 
|             public static readonly IUniTaskAsyncEnumerator<T> Instance = new _Empty(); | 
|   | 
|             _Empty() | 
|             { | 
|             } | 
|   | 
|             public T Current => default; | 
|   | 
|             public UniTask<bool> MoveNextAsync() | 
|             { | 
|                 return CompletedTasks.False; | 
|             } | 
|   | 
|             public UniTask DisposeAsync() | 
|             { | 
|                 return default; | 
|             } | 
|         } | 
|     } | 
| } |