1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2024-11-21 20:42:46 +01:00
TweetDuck/lib/TweetLib.Browser/Request/SchemeResource.cs

39 lines
902 B
C#

using System.Net;
using TweetLib.Browser.Interfaces;
namespace TweetLib.Browser.Request {
public abstract class SchemeResource {
private SchemeResource() {}
public abstract T Visit<T>(ISchemeResourceVisitor<T> visitor);
public sealed class Status : SchemeResource {
public HttpStatusCode Code { get; }
public string Message { get; }
public Status(HttpStatusCode code, string message) {
Code = code;
Message = message;
}
public override T Visit<T>(ISchemeResourceVisitor<T> visitor) {
return visitor.Status(this);
}
}
public sealed class File : SchemeResource {
public byte[] Contents { get; }
public string Extension { get; }
public File(byte[] contents, string extension) {
Contents = contents;
Extension = extension;
}
public override T Visit<T>(ISchemeResourceVisitor<T> visitor) {
return visitor.File(this);
}
}
}
}