Skip to content

Commit

Permalink
Merge pull request #692 from polyadic/update-code-style
Browse files Browse the repository at this point in the history
  • Loading branch information
bash authored Oct 31, 2022
2 parents b097829 + 6e205d2 commit e0ea761
Show file tree
Hide file tree
Showing 15 changed files with 194 additions and 184 deletions.
5 changes: 0 additions & 5 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,6 @@ indent_style = tab
[*.{yml,yaml}]
indent_size = 2

[*.cs]
# IDE0005: Using directive is unnecessary.
dotnet_diagnostic.IDE0005.severity = warning
csharp_style_namespace_declarations=file_scoped:suggestion

[*.verified.cs]
trim_trailing_whitespace = false
insert_final_newline = false
1 change: 0 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
<PackageReference Include="Messerli.CodeStyle" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup Label="Code Style">
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<AnalysisLevel>5.0</AnalysisLevel>
</PropertyGroup>
<PropertyGroup Label="C# Settings">
Expand Down
49 changes: 49 additions & 0 deletions Funcky.Async/Monads/Option/ConfiguredOptionTaskAwaitable.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using System.Runtime.CompilerServices;

namespace Funcky.Monads;

public readonly struct ConfiguredOptionTaskAwaitable<TItem>
where TItem : notnull
{
private readonly Option<ConfiguredTaskAwaitable<TItem>> _awaitable;

internal ConfiguredOptionTaskAwaitable(Option<ConfiguredTaskAwaitable<TItem>> awaitable) => _awaitable = awaitable;

public ConfiguredOptionTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredTaskAwaitable<TItem>.ConfiguredTaskAwaiter> _awaiter;

internal ConfiguredOptionTaskAwaiter(Option<ConfiguredTaskAwaitable<TItem>.ConfiguredTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult() => _awaiter.Select(awaiter => awaiter.GetResult());
}
}

public readonly struct ConfiguredOptionTaskAwaitable
{
private readonly Option<ConfiguredTaskAwaitable> _awaitable;

internal ConfiguredOptionTaskAwaitable(Option<ConfiguredTaskAwaitable> awaitable) => _awaitable = awaitable;

public ConfiguredOptionTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredTaskAwaitable.ConfiguredTaskAwaiter> _awaiter;

internal ConfiguredOptionTaskAwaiter(Option<ConfiguredTaskAwaitable.ConfiguredTaskAwaiter> awaiter) =>
_awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public void GetResult() => _awaiter.AndThen(awaiter => awaiter.GetResult());
}
}
50 changes: 50 additions & 0 deletions Funcky.Async/Monads/Option/ConfiguredOptionValueTaskAwaitable.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using System.Runtime.CompilerServices;

namespace Funcky.Monads;

public readonly struct ConfiguredOptionValueTaskAwaitable<TItem>
where TItem : notnull
{
private readonly Option<ConfiguredValueTaskAwaitable<TItem>> _awaitable;

internal ConfiguredOptionValueTaskAwaitable(Option<ConfiguredValueTaskAwaitable<TItem>> awaitable) => _awaitable = awaitable;

public ConfiguredOptionValueTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionValueTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredValueTaskAwaitable<TItem>.ConfiguredValueTaskAwaiter> _awaiter;

internal ConfiguredOptionValueTaskAwaiter(Option<ConfiguredValueTaskAwaitable<TItem>.ConfiguredValueTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult() => _awaiter.Select(task => task.GetResult());
}
}

public readonly struct ConfiguredOptionValueTaskAwaitable
{
private readonly Option<ConfiguredValueTaskAwaitable> _awaitable;

internal ConfiguredOptionValueTaskAwaitable(Option<ConfiguredValueTaskAwaitable> awaitable) =>
_awaitable = awaitable;

public ConfiguredOptionValueTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionValueTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter> _awaiter;

internal ConfiguredOptionValueTaskAwaiter(
Option<ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public void GetResult() => _awaiter.AndThen(awaiter => awaiter.GetResult());
}
}
157 changes: 0 additions & 157 deletions Funcky.Async/Monads/Option/OptionAsyncExtensions.GetAwaiter.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Funcky.Monads;

Expand Down Expand Up @@ -57,159 +56,3 @@ public static ConfiguredOptionValueTaskAwaitable<TItem> ConfigureAwait<TItem>(th
where TItem : notnull
=> new(option.Select(task => task.ConfigureAwait(continueOnCapturedContext)));
}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionTaskAwaiter : INotifyCompletion
{
private readonly TaskAwaiter _awaiter;

internal OptionTaskAwaiter(TaskAwaiter awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.IsCompleted;

public void OnCompleted(Action continuation) => _awaiter.OnCompleted(continuation);

public void GetResult() => _awaiter.GetResult();
}

public readonly struct ConfiguredOptionTaskAwaitable
{
private readonly Option<ConfiguredTaskAwaitable> _awaitable;

internal ConfiguredOptionTaskAwaitable(Option<ConfiguredTaskAwaitable> awaitable) => _awaitable = awaitable;

public ConfiguredOptionTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredTaskAwaitable.ConfiguredTaskAwaiter> _awaiter;

internal ConfiguredOptionTaskAwaiter(Option<ConfiguredTaskAwaitable.ConfiguredTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public void GetResult() => _awaiter.AndThen(awaiter => awaiter.GetResult());
}
}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionTaskAwaiter<TItem> : INotifyCompletion
where TItem : notnull
{
private readonly Option<TaskAwaiter<TItem>> _awaiter;

internal OptionTaskAwaiter(Option<TaskAwaiter<TItem>> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter
.Select(awaiter => awaiter.IsCompleted)
.GetOrElse(true);

public void OnCompleted(Action continuation)
=> _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult()
=> _awaiter.Select(awaiter => awaiter.GetResult());
}

public readonly struct ConfiguredOptionTaskAwaitable<TItem>
where TItem : notnull
{
private readonly Option<ConfiguredTaskAwaitable<TItem>> _awaitable;

internal ConfiguredOptionTaskAwaitable(Option<ConfiguredTaskAwaitable<TItem>> awaitable) => _awaitable = awaitable;

public ConfiguredOptionTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredTaskAwaitable<TItem>.ConfiguredTaskAwaiter> _awaiter;

internal ConfiguredOptionTaskAwaiter(Option<ConfiguredTaskAwaitable<TItem>.ConfiguredTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult() => _awaiter.Select(awaiter => awaiter.GetResult());
}
}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionValueTaskAwaiter : INotifyCompletion
{
private readonly ValueTaskAwaiter _awaiter;

internal OptionValueTaskAwaiter(ValueTaskAwaiter awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.IsCompleted;

public void OnCompleted(Action continuation) => _awaiter.OnCompleted(continuation);

public void GetResult() => _awaiter.GetResult();
}

public readonly struct ConfiguredOptionValueTaskAwaitable
{
private readonly Option<ConfiguredValueTaskAwaitable> _awaitable;

internal ConfiguredOptionValueTaskAwaitable(Option<ConfiguredValueTaskAwaitable> awaitable) => _awaitable = awaitable;

public ConfiguredOptionValueTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionValueTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter> _awaiter;

internal ConfiguredOptionValueTaskAwaiter(Option<ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public void GetResult() => _awaiter.AndThen(awaiter => awaiter.GetResult());
}
}

[EditorBrowsable(EditorBrowsableState.Never)]
public readonly struct OptionValueTaskAwaiter<TItem> : INotifyCompletion
where TItem : notnull
{
private readonly Option<ValueTaskAwaiter<TItem>> _awaiter;

internal OptionValueTaskAwaiter(Option<ValueTaskAwaiter<TItem>> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter
.Select(awaiter => awaiter.IsCompleted)
.GetOrElse(true);

public void OnCompleted(Action continuation)
=> _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult()
=> _awaiter.Select(awaiter => awaiter.GetResult());
}

public readonly struct ConfiguredOptionValueTaskAwaitable<TItem>
where TItem : notnull
{
private readonly Option<ConfiguredValueTaskAwaitable<TItem>> _awaitable;

internal ConfiguredOptionValueTaskAwaitable(Option<ConfiguredValueTaskAwaitable<TItem>> awaitable) => _awaitable = awaitable;

public ConfiguredOptionValueTaskAwaiter GetAwaiter() => new(_awaitable.Select(awaitable => awaitable.GetAwaiter()));

public readonly struct ConfiguredOptionValueTaskAwaiter : INotifyCompletion
{
private readonly Option<ConfiguredValueTaskAwaitable<TItem>.ConfiguredValueTaskAwaiter> _awaiter;

internal ConfiguredOptionValueTaskAwaiter(Option<ConfiguredValueTaskAwaitable<TItem>.ConfiguredValueTaskAwaiter> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.Select(awaiter => awaiter.IsCompleted).GetOrElse(true);

public void OnCompleted(Action continuation) => _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult() => _awaiter.Select(task => task.GetResult());
}
}
37 changes: 37 additions & 0 deletions Funcky.Async/Monads/Option/OptionTaskAwaiter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Funcky.Monads;

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionTaskAwaiter<TItem> : INotifyCompletion
where TItem : notnull
{
private readonly Option<TaskAwaiter<TItem>> _awaiter;

internal OptionTaskAwaiter(Option<TaskAwaiter<TItem>> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter
.Select(awaiter => awaiter.IsCompleted)
.GetOrElse(true);

public void OnCompleted(Action continuation)
=> _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult()
=> _awaiter.Select(awaiter => awaiter.GetResult());
}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionTaskAwaiter : INotifyCompletion
{
private readonly TaskAwaiter _awaiter;

internal OptionTaskAwaiter(TaskAwaiter awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.IsCompleted;

public void OnCompleted(Action continuation) => _awaiter.OnCompleted(continuation);

public void GetResult() => _awaiter.GetResult();
}
37 changes: 37 additions & 0 deletions Funcky.Async/Monads/Option/OptionValueTaskAwaiter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace Funcky.Monads;

[EditorBrowsable(EditorBrowsableState.Never)]
public readonly struct OptionValueTaskAwaiter<TItem> : INotifyCompletion
where TItem : notnull
{
private readonly Option<ValueTaskAwaiter<TItem>> _awaiter;

internal OptionValueTaskAwaiter(Option<ValueTaskAwaiter<TItem>> awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter
.Select(awaiter => awaiter.IsCompleted)
.GetOrElse(true);

public void OnCompleted(Action continuation)
=> _awaiter.AndThen(awaiter => awaiter.OnCompleted(continuation));

public Option<TItem> GetResult()
=> _awaiter.Select(awaiter => awaiter.GetResult());
}

[EditorBrowsable(EditorBrowsableState.Advanced)]
public readonly struct OptionValueTaskAwaiter : INotifyCompletion
{
private readonly ValueTaskAwaiter _awaiter;

internal OptionValueTaskAwaiter(ValueTaskAwaiter awaiter) => _awaiter = awaiter;

public bool IsCompleted => _awaiter.IsCompleted;

public void OnCompleted(Action continuation) => _awaiter.OnCompleted(continuation);

public void GetResult() => _awaiter.GetResult();
}
File renamed without changes.
File renamed without changes.
16 changes: 8 additions & 8 deletions Funcky/Extensions/EnumerableExtensions/EitherPartitions.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
namespace Funcky.Extensions;

public static class EitherPartitions
{
public static EitherPartitions<TLeft, TRight> Create<TLeft, TRight>(IReadOnlyList<TLeft> left, IReadOnlyList<TRight> right)
where TLeft : notnull
where TRight : notnull
=> new(left, right);
}

public readonly struct EitherPartitions<TLeft, TRight>
where TLeft : notnull
where TRight : notnull
Expand All @@ -20,3 +12,11 @@ public readonly struct EitherPartitions<TLeft, TRight>

public void Deconstruct(out IReadOnlyList<TLeft> left, out IReadOnlyList<TRight> right) => (left, right) = (Left, Right);
}

public static class EitherPartitions
{
public static EitherPartitions<TLeft, TRight> Create<TLeft, TRight>(IReadOnlyList<TLeft> left, IReadOnlyList<TRight> right)
where TLeft : notnull
where TRight : notnull
=> new(left, right);
}
Loading

0 comments on commit e0ea761

Please sign in to comment.