Size: a a a

F# Flood: ПДД made functional, making illegal state INGIBDDdale

2020 May 07

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
вот прям чтобы работало
источник

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Код ошибки
источник

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
И текст
источник

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Все
источник

VS

Vasily Shapenko in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Дальше изи
источник

F

Fill in F# Flood: ПДД made functional, making illegal state INGIBDDdale
я тут по динамщикам проехался
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Vladislav Khapin
имплисит?
Ну у тебя ответы команд и квери типа result<t>

И ты либо возвращаешь в команде t либо ошибку из du ошибок а он через имплисит приведения в резалт сам оборачивает.

Могу в лс потом кинуть
источник

F

Fill in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Fill
я тут по динамщикам проехался
источник

F

Fill in F# Flood: ПДД made functional, making illegal state INGIBDDdale
прям не заебывался, просто прям в статье поназывал всех болванами и говнарями
источник

F

Fill in F# Flood: ПДД made functional, making illegal state INGIBDDdale
и работает
источник

VK

Vladislav Khapin in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Mikhail
Ну у тебя ответы команд и квери типа result<t>

И ты либо возвращаешь в команде t либо ошибку из du ошибок а он через имплисит приведения в резалт сам оборачивает.

Могу в лс потом кинуть
а, скинь
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Mikhail
Ну у тебя ответы команд и квери типа result<t>

И ты либо возвращаешь в команде t либо ошибку из du ошибок а он через имплисит приведения в резалт сам оборачивает.

Могу в лс потом кинуть
Боялся имплисита но в данном контексте он пришёлся к месту и в ногу не ебнул пока
источник

VK

Viacheslav Koryagin in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ох, лол
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ayrat Hudaygulov
public abstract class Result
{
   public sealed class Ok : Result
   {
       public string AccessToken { get; }
       public string RefreshToken { get; }

       public Ok(string accessToken, string refreshToken)
       {
           AccessToken = accessToken;
           RefreshToken = refreshToken;
       }
   }

   public sealed class Unauthorized : Result
   {
       public static Unauthorized Instance = new Unauthorized();

       private Unauthorized()
       {
       }
   }

   public sealed class HttpError : Result
   {
       public int StatusCode { get; }
       public string Reason { get; }

       public HttpError(int statusCode, string reason)
       {
           StatusCode = statusCode;
           Reason = reason;
       }
   }

   public static Result Return(string accessToken, string refreshToken) =>
       new Ok(accessToken, refreshToken);

   public static Result FlatMap(Result x, Func<Ok, Result> f) => x switch
   {
       Ok ok => f(ok),
       HttpError httpError => httpError,
       Unauthorized unauthorized => unauthorized,
       _ => throw new ArgumentOutOfRangeException(nameof(x))
   };
}
public abstract class RefreshTokenResult
{
   private static object Dummy = new object();
   
   protected RefreshTokenResult() => throw new InvalidOperationException();
   
   private RefreshTokenResult(object _)
   {
   }

   public sealed class Ok : RefreshTokenResult
   {
       public string AccessToken { get; }
       public string RefreshToken { get; }

       public Ok(string accessToken, string refreshToken) : base(Dummy)
       {
           AccessToken = accessToken;
           RefreshToken = refreshToken;
       }
   }

   public sealed class HttpError : RefreshTokenResult
   {
       public HttpStatusCode Code { get; }
       public string Reason { get; }

       public HttpError(HttpStatusCode code, string reason) : base(Dummy)
       {
           Code = code;
           Reason = reason;
       }
   }
}
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
гляди, теперь абстрактный класс тоже "sealed" 😃
источник

M

Mikhail in F# Flood: ПДД made functional, making illegal state INGIBDDdale
Ахахахаха
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
а, ну да.
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
-_-
источник

AH

Ayrat Hudaygulov in F# Flood: ПДД made functional, making illegal state INGIBDDdale
хороший костыль, годный
источник

A

Anatoly in F# Flood: ПДД made functional, making illegal state INGIBDDdale
и вообще, я тут подумал, что именно так я могу и принести эфшарпы в контору
источник