2 Commits

Author SHA1 Message Date
9485ad3ec4 update Copyright
All checks were successful
.NET Test / test (push) Successful in 1m1s
.NET Publish / publish (push) Successful in 56s
2025-07-31 23:35:06 +04:00
595b63dc23 support for dotnet9 compilation
All checks were successful
.NET Test / test (push) Successful in 2m2s
2025-07-29 23:22:28 +04:00
7 changed files with 28 additions and 20 deletions

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup .NET
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.x
dotnet-version: 9.x
- name: Restore dependencies
run: dotnet restore Railway/Railway.csproj

View File

@@ -21,7 +21,7 @@ jobs:
- name: Setup .NET
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.x
dotnet-version: 9.x
- name: Restore dependencies
run: dotnet restore
@@ -30,12 +30,12 @@ jobs:
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal --logger trx --results-directory "TestResults-8.x"
run: dotnet test --no-build --verbosity normal --logger trx --results-directory "TestResults-9.x"
- name: Upload dotnet test results
uses: actions/upload-artifact@v3
with:
name: dotnet-results-8.x
path: TestResults-8.x
name: dotnet-results-9.x
path: TestResults-9.x
if: ${{ always() }}
retention-days: 30

View File

@@ -1,4 +1,4 @@
Copyright (c) 2023-2024 JustFixMe
Copyright (c) 2023-2025 JustFixMe
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -221,15 +221,22 @@ public sealed class ExceptionalError : Error
private static ImmutableDictionary<string, string> ExtractExtensionData(Exception exception)
{
if (!(exception.Data?.Count > 0))
return ImmutableDictionary<string, string>.Empty;
return ImmutableDictionary<string, string>.Empty;
var values = GetGenericExtData(exception);
return values is not null ? values.ToImmutable() : ImmutableDictionary<string, string>.Empty;
}
private static ImmutableDictionary<string, string>.Builder? GetGenericExtData(Exception ex)
{
ImmutableDictionary<string, string>.Builder? values = null;
foreach (var key in exception.Data.Keys)
foreach (var key in ex.Data.Keys)
{
if (key is null) continue;
var value = exception.Data[key];
var value = ex.Data[key];
if (value is null) continue;
var keyString = key.ToString();
@@ -239,7 +246,8 @@ public sealed class ExceptionalError : Error
values ??= ImmutableDictionary.CreateBuilder<string, string>();
values.Add(keyString, valueString);
}
return values is not null ? values.ToImmutable() : ImmutableDictionary<string, string>.Empty;
return values;
}
}

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<LangVersion>10.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
@@ -11,7 +11,7 @@
<Description>Base for railway-oriented programming in .NET. Package includes Result object, Error class and most of the common extensions.</Description>
<PackageTags>railway-oriented;functional;result-pattern;result-object;error-handling</PackageTags>
<Authors>JustFixMe</Authors>
<Copyright>Copyright (c) 2023-2024 JustFixMe</Copyright>
<Copyright>Copyright (c) 2023-2025 JustFixMe</Copyright>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
<RepositoryUrl>https://github.com/JustFixMe/Just.Railway/</RepositoryUrl>

View File

@@ -5,7 +5,7 @@ namespace Just.Railway;
public static partial class ResultExtensions
{
#region Match (with fallback)
public static T Match<T>(this in Result<T> result, Func<Error, T> fallback)
{
return result.State switch
@@ -15,7 +15,7 @@ public static partial class ResultExtensions
_ => throw new ResultNotInitializedException(nameof(result))
};
}
public static async Task<T> Match<T>(this Result<T> result, Func<Error, Task<T>> fallback)
{
return result.State switch
@@ -77,7 +77,7 @@ public static partial class ResultExtensions
}
#endregion
#region Merge
public static Result Merge(this IEnumerable<Result> results)

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
@@ -11,13 +11,13 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.6.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.0">
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>