Added constant state changers to represent singular/repeating states. Added a DownloadContextBuilder to support fluent building patterns. Changed RetryReporter and DownloadReporter to use RetryReport and DownloadReport structs to simplify type declarations. Made MainArchitecture obsolete by supporting a fluent downloads with DownloadBuilder. Created a 'budge' OpenAI bridge for proof-of-concept translation.

This commit is contained in:
qwsdcvghyu89
2025-06-07 00:56:26 +03:00
parent a086cfa02b
commit a9a22ea23d
28 changed files with 809 additions and 145 deletions
+33
View File
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace Beam.Temporary.Cli {
public class StateChangerFactory {
public IStateChangeBehaviour Behavior => FactoryTable[StateChangerKey]();
[JsonInclude]
public string StateChangerKey { get; set; }
[JsonConstructor]
public StateChangerFactory(string key) {
if (!Keys.Contains(key))
throw new ArgumentException($"{key} not in keys list", nameof(key));
StateChangerKey = key;
}
public static Dictionary<string, Func<IStateChangeBehaviour>> FactoryTable = new() {
{ LastAsNumber, () => CommonStateChangers.LastAsNumber },
{ LastAsNumberPrefixed, () => CommonStateChangers.NthAsNumber(^1, true) },
{ Constant, () => CommonStateChangers.Constant },
};
public HashSet<string> Keys = [LastAsNumber, LastAsNumberPrefixed, Constant];
public const string LastAsNumber = "LastAsNumber";
public const string LastAsNumberPrefixed = "LastAsNumberPrefixed";
public const string Constant = "Constant";
}
}