Refactored to use ValueTask<>

This commit is contained in:
Thorsten Sommer 2020-09-26 11:46:54 +02:00
parent 976643dd9b
commit 45e8596588
7 changed files with 13 additions and 13 deletions

View File

@ -22,7 +22,7 @@ namespace FastRng.Double.Distributions
}
}
public async Task<double> GetDistributedValue(CancellationToken token)
public async ValueTask<double> GetDistributedValue(CancellationToken token)
{
if (this.Random == null)
return 0;

View File

@ -24,7 +24,7 @@ namespace FastRng.Double.Distributions
public double Scale { get; set; } = 1;
public async Task<double> GetDistributedValue(CancellationToken token)
public async ValueTask<double> GetDistributedValue(CancellationToken token)
{
if (this.Random == null)
return 0;

View File

@ -7,6 +7,6 @@ namespace FastRng.Double.Distributions
{
public IRandom Random { get; set; }
public Task<double> GetDistributedValue(CancellationToken token);
public ValueTask<double> GetDistributedValue(CancellationToken token);
}
}

View File

@ -24,7 +24,7 @@ namespace FastRng.Double.Distributions
}
}
public async Task<double> GetDistributedValue(CancellationToken token = default)
public async ValueTask<double> GetDistributedValue(CancellationToken token = default)
{
if (this.Random == null)
return 0;

View File

@ -7,6 +7,6 @@ namespace FastRng.Double.Distributions
{
public IRandom Random { get; set; }
public async Task<double> GetDistributedValue(CancellationToken token = default) => this.Random == null ? 0 : await this.Random.GetUniform(token);
public async ValueTask<double> GetDistributedValue(CancellationToken token = default) => this.Random == null ? 0 : await this.Random.GetUniform(token);
}
}

View File

@ -6,13 +6,13 @@ namespace FastRng.Double
{
public interface IRandom
{
public Task<double> GetUniform(CancellationToken cancel = default);
public ValueTask<double> GetUniform(CancellationToken cancel = default);
public Task<uint> NextNumber(uint rangeStart, uint rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public ValueTask<uint> NextNumber(uint rangeStart, uint rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public Task<ulong> NextNumber(ulong rangeStart, ulong rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public ValueTask<ulong> NextNumber(ulong rangeStart, ulong rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public Task<float> NextNumber(float rangeStart, float rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public ValueTask<float> NextNumber(float rangeStart, float rangeEnd, IDistribution distribution, CancellationToken cancel = default);
public void StopProducer();
}

View File

@ -133,9 +133,9 @@ namespace FastRng.Double
#region Implementing interface
public async Task<double> GetUniform(CancellationToken cancel = default) => await this.channelRandomUniformDistributedDouble.Reader.ReadAsync(cancel);
public async ValueTask<double> GetUniform(CancellationToken cancel = default) => await this.channelRandomUniformDistributedDouble.Reader.ReadAsync(cancel);
public async Task<uint> NextNumber(uint rangeStart, uint rangeEnd, IDistribution distribution, CancellationToken cancel = default)
public async ValueTask<uint> NextNumber(uint rangeStart, uint rangeEnd, IDistribution distribution, CancellationToken cancel = default)
{
if (rangeStart > rangeEnd)
{
@ -151,7 +151,7 @@ namespace FastRng.Double
return (uint) ((distributedValue * range) + rangeStart);
}
public async Task<ulong> NextNumber(ulong rangeStart, ulong rangeEnd, IDistribution distribution, CancellationToken cancel = default(CancellationToken))
public async ValueTask<ulong> NextNumber(ulong rangeStart, ulong rangeEnd, IDistribution distribution, CancellationToken cancel = default(CancellationToken))
{
if (rangeStart > rangeEnd)
{
@ -167,7 +167,7 @@ namespace FastRng.Double
return (ulong) ((distributedValue * range) + rangeStart);
}
public async Task<float> NextNumber(float rangeStart, float rangeEnd, IDistribution distribution, CancellationToken cancel = default(CancellationToken))
public async ValueTask<float> NextNumber(float rangeStart, float rangeEnd, IDistribution distribution, CancellationToken cancel = default(CancellationToken))
{
if (rangeStart > rangeEnd)
{