using System; using Myriad.Rest.Ratelimit; namespace Myriad.Rest.Exceptions { public class RatelimitException: Exception { public RatelimitException(string? message): base(message) { } } public class RatelimitBucketExhaustedException: RatelimitException { public RatelimitBucketExhaustedException(Bucket bucket, TimeSpan retryAfter): base( "Rate limit bucket exhausted, request blocked") { Bucket = bucket; RetryAfter = retryAfter; } public Bucket Bucket { get; } public TimeSpan RetryAfter { get; } } public class GloballyRatelimitedException: RatelimitException { public GloballyRatelimitedException(): base("Global rate limit hit") { } } }