Complete typed map ergonomics and preview API
This commit is contained in:
@@ -60,13 +60,23 @@ public sealed class NftablesClient : INftablesClient
|
||||
public NftValidationResult ValidateRuleset(NftRuleset ruleset, CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
return Validate(CreateTypedRequest(ruleset), ct);
|
||||
return ValidateAndRenderRuleset(ruleset, ct).ValidationResult;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public string RenderRuleset(NftRuleset ruleset)
|
||||
=> NftRulesetRenderer.Render(ruleset);
|
||||
|
||||
/// <inheritdoc />
|
||||
public NftRenderedValidationResult ValidateAndRenderRuleset(NftRuleset ruleset, CancellationToken ct = default)
|
||||
{
|
||||
ct.ThrowIfCancellationRequested();
|
||||
|
||||
string rendered = RenderRuleset(ruleset);
|
||||
NftValidationResult validation = Validate(NftApplyRequest.FromText(rendered), ct);
|
||||
return new NftRenderedValidationResult(rendered, validation);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<NftValidationResult> ValidateAsync(NftApplyRequest request, CancellationToken ct = default)
|
||||
=> Task.FromResult(Validate(request, ct));
|
||||
@@ -75,6 +85,10 @@ public sealed class NftablesClient : INftablesClient
|
||||
public Task<NftValidationResult> ValidateRulesetAsync(NftRuleset ruleset, CancellationToken ct = default)
|
||||
=> Task.FromResult(ValidateRuleset(ruleset, ct));
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<NftRenderedValidationResult> ValidateAndRenderRulesetAsync(NftRuleset ruleset, CancellationToken ct = default)
|
||||
=> Task.FromResult(ValidateAndRenderRuleset(ruleset, ct));
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Apply(NftApplyRequest request, CancellationToken ct = default)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user