BadScript 2
Loading...
Searching...
No Matches
RailwaySharp.ErrorHandling.Result< TSuccess, TMessage > Class Template Referenceabstract

Represents the result of a computation. More...

Inheritance diagram for RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >:
RailwaySharp.ErrorHandling.Bad< TSuccess, TMessage > RailwaySharp.ErrorHandling.Ok< TSuccess, TMessage >

Public Member Functions

override string ToString ()
 

Static Public Member Functions

static Result< TSuccess, TMessage > FailWith< TSuccess, TMessage > (IEnumerable< TMessage > messages)
 Creates a Failure result with the given messages.
 
static Result< TSuccess, TMessage > FailWith< TSuccess, TMessage > (TMessage message)
 Creates a Failure result with the given message.
 
static Result< TSuccess, TMessage > Succeed< TSuccess, TMessage > (TSuccess value)
 Creates a Success result with the given value.
 
static Result< TSuccess, TMessage > Succeed< TSuccess, TMessage > (TSuccess value, TMessage message)
 Creates a Success result with the given value and the given message.
 
static Result< TSuccess, TMessage > Succeed< TSuccess, TMessage > (TSuccess value, IEnumerable< TMessage > messages)
 Creates a Success result with the given value and the given messages.
 
static Result< TSuccess, Exception > Try< TSuccess > (Func< TSuccess > func)
 Executes the given function on a given success or captures the failure.
 

Protected Member Functions

 Result (ResultType tag)
 

Properties

ResultType Tag [get]
 

Detailed Description

Represents the result of a computation.

Template Parameters
TSuccessType that models the result of a successful computation.
TMessageType that model a message related to a computation.

Definition at line 32 of file ErrorHandling.cs.

Constructor & Destructor Documentation

◆ Result()

RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Result ( ResultType  tag)
protected

Definition at line 34 of file ErrorHandling.cs.

35 {
36 Tag = tag;
37 }

Member Function Documentation

◆ FailWith< TSuccess, TMessage >() [1/2]

static Result< TSuccess, TMessage > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.FailWith< TSuccess, TMessage > ( IEnumerable< TMessage >  messages)
static

Creates a Failure result with the given messages.

Definition at line 122 of file ErrorHandling.cs.

123 {
124 if (messages == null)
125 {
126 throw new ArgumentException(nameof(messages));
127 }
128
129 return new Bad<TSuccess, TMessage>(messages);
130 }

◆ FailWith< TSuccess, TMessage >() [2/2]

static Result< TSuccess, TMessage > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.FailWith< TSuccess, TMessage > ( TMessage  message)
static

Creates a Failure result with the given message.

Definition at line 135 of file ErrorHandling.cs.

136 {
137 if (message == null)
138 {
139 throw new ArgumentException(nameof(message));
140 }
141
142 return new Bad<TSuccess, TMessage>(new[] { message });
143 }

◆ Succeed< TSuccess, TMessage >() [1/3]

static Result< TSuccess, TMessage > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Succeed< TSuccess, TMessage > ( TSuccess  value)
static

Creates a Success result with the given value.

Definition at line 148 of file ErrorHandling.cs.

149 {
150 return new Ok<TSuccess, TMessage>(value, Enumerable.Empty<TMessage>());
151 }

◆ Succeed< TSuccess, TMessage >() [2/3]

static Result< TSuccess, TMessage > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Succeed< TSuccess, TMessage > ( TSuccess  value,
IEnumerable< TMessage >  messages 
)
static

Creates a Success result with the given value and the given messages.

Definition at line 171 of file ErrorHandling.cs.

174 {
175 if (messages == null)
176 {
177 throw new ArgumentException(nameof(messages));
178 }
179
180 return new Ok<TSuccess, TMessage>(value, messages);
181 }

◆ Succeed< TSuccess, TMessage >() [3/3]

static Result< TSuccess, TMessage > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Succeed< TSuccess, TMessage > ( TSuccess  value,
TMessage  message 
)
static

Creates a Success result with the given value and the given message.

Definition at line 156 of file ErrorHandling.cs.

157 {
158 if (message == null)
159 {
160 throw new ArgumentException(nameof(message));
161 }
162
163 return new Ok<TSuccess, TMessage>(value,
164 new[] { message }
165 );
166 }

◆ ToString()

override string RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.ToString ( )

Definition at line 41 of file ErrorHandling.cs.

42 {
43 switch (Tag)
44 {
45 default:
46 Ok<TSuccess, TMessage> ok = (Ok<TSuccess, TMessage>)this;
47
48 return string.Format("OK: {0} - {1}",
49 ok.Success,
50 string.Join(Environment.NewLine, ok.Messages.Select(v => v.ToString()))
51 );
52 case ResultType.Bad:
53 Bad<TSuccess, TMessage> bad = (Bad<TSuccess, TMessage>)this;
54
55 return string.Format("Error: {0}",
56 string.Join(Environment.NewLine, bad.Messages.Select(v => v.ToString()))
57 );
58 }
59 }

◆ Try< TSuccess >()

static Result< TSuccess, Exception > RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Try< TSuccess > ( Func< TSuccess >  func)
static

Executes the given function on a given success or captures the failure.

Definition at line 186 of file ErrorHandling.cs.

187 {
188 if (func == null)
189 {
190 throw new ArgumentException(nameof(func));
191 }
192
193 try
194 {
195 return new Ok<TSuccess, Exception>(func(),
196 Enumerable.Empty<Exception>()
197 );
198 }
199 catch (Exception ex)
200 {
201 return new Bad<TSuccess, Exception>(new[] { ex });
202 }
203 }

Property Documentation

◆ Tag

ResultType RailwaySharp.ErrorHandling.Result< TSuccess, TMessage >.Tag
get

Definition at line 39 of file ErrorHandling.cs.

39{ get; }

The documentation for this class was generated from the following file: