Skip to content

Commit 0676115

Browse files
authored
Merge pull request #6 from valbeat/copilot/fix-5
Convert Result from abstract class to interface
2 parents afe1b52 + 1fe9ef3 commit 0676115

File tree

3 files changed

+24
-24
lines changed

3 files changed

+24
-24
lines changed

src/Err.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
*
1212
* @template E
1313
*
14-
* @extends Result<never, E>
14+
* @implements Result<never, E>
1515
*/
16-
final readonly class Err extends Result
16+
final readonly class Err implements Result
1717
{
1818
/**
1919
* @param E $value

src/Ok.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
*
1212
* @template T
1313
*
14-
* @extends Result<T, never>
14+
* @implements Result<T, never>
1515
*/
16-
final readonly class Ok extends Result
16+
final readonly class Ok implements Result
1717
{
1818
/**
1919
* @param T $value

src/Result.php

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
* @template T 成功時の値の型
1111
* @template E 失敗時のエラーの型
1212
*/
13-
abstract readonly class Result
13+
interface Result
1414
{
1515
/**
1616
* 結果が成功(Ok)の場合に true を返します.
@@ -19,7 +19,7 @@
1919
*
2020
* @return bool
2121
*/
22-
abstract public function isOk(): bool;
22+
public function isOk(): bool;
2323

2424
/**
2525
* 結果が成功(Ok)でありコールバックが true を返す場合に true を返します.
@@ -28,7 +28,7 @@ abstract public function isOk(): bool;
2828
*
2929
* @return bool
3030
*/
31-
abstract public function isOkAnd(callable $fn): bool;
31+
public function isOkAnd(callable $fn): bool;
3232

3333
/**
3434
* 結果が失敗(Err)の場合に true を返します.
@@ -37,7 +37,7 @@ abstract public function isOkAnd(callable $fn): bool;
3737
*
3838
* @return bool
3939
*/
40-
abstract public function isErr(): bool;
40+
public function isErr(): bool;
4141

4242
/**
4343
* 結果が失敗(Err)でありコールバックが true を返す場合に true を返します.
@@ -46,21 +46,21 @@ abstract public function isErr(): bool;
4646
*
4747
* @return bool
4848
*/
49-
abstract public function isErrAnd(callable $fn): bool;
49+
public function isErrAnd(callable $fn): bool;
5050

5151
/**
5252
* 成功値を返します。失敗の場合は例外を投げます.
5353
*
5454
* @return T
5555
*/
56-
abstract public function unwrap(): mixed;
56+
public function unwrap(): mixed;
5757

5858
/**
5959
* エラー値を返します。成功の場合は例外を投げます.
6060
*
6161
* @return E
6262
*/
63-
abstract public function unwrapErr(): mixed;
63+
public function unwrapErr(): mixed;
6464

6565
/**
6666
* 成功値またはデフォルト値を返します.
@@ -69,7 +69,7 @@ abstract public function unwrapErr(): mixed;
6969
* @param U $default
7070
* @return T|U
7171
*/
72-
abstract public function unwrapOr(mixed $default): mixed;
72+
public function unwrapOr(mixed $default): mixed;
7373

7474
/**
7575
* 成功値またはクロージャーの結果を返します.
@@ -79,7 +79,7 @@ abstract public function unwrapOr(mixed $default): mixed;
7979
*
8080
* @return T|U
8181
*/
82-
abstract public function unwrapOrElse(callable $fn): mixed;
82+
public function unwrapOrElse(callable $fn): mixed;
8383

8484
/**
8585
* 成功値に関数を適用します.
@@ -90,7 +90,7 @@ abstract public function unwrapOrElse(callable $fn): mixed;
9090
*
9191
* @return Result<U, E>
9292
*/
93-
abstract public function map(callable $fn): self;
93+
public function map(callable $fn): self;
9494

9595
/**
9696
* エラー値に関数を適用します.
@@ -101,7 +101,7 @@ abstract public function map(callable $fn): self;
101101
*
102102
* @return Result<T, F>
103103
*/
104-
abstract public function mapErr(callable $fn): self;
104+
public function mapErr(callable $fn): self;
105105

106106
/**
107107
* 成功値に副作用を適用します.
@@ -110,7 +110,7 @@ abstract public function mapErr(callable $fn): self;
110110
*
111111
* @return Result<T, E>
112112
*/
113-
abstract public function inspect(callable $fn): self;
113+
public function inspect(callable $fn): self;
114114

115115
/**
116116
* エラー値に副作用を適用します.
@@ -119,7 +119,7 @@ abstract public function inspect(callable $fn): self;
119119
*
120120
* @return Result<T, E>
121121
*/
122-
abstract public function inspectErr(callable $fn): self;
122+
public function inspectErr(callable $fn): self;
123123

124124
/**
125125
* 成功値に関数を適用するか、デフォルト値を返します.
@@ -131,7 +131,7 @@ abstract public function inspectErr(callable $fn): self;
131131
*
132132
* @return T|U
133133
*/
134-
abstract public function mapOr(mixed $default, callable $fn): mixed;
134+
public function mapOr(mixed $default, callable $fn): mixed;
135135

136136
/**
137137
* 成功値に関数を適用するか、クロージャーの結果を返します.
@@ -143,7 +143,7 @@ abstract public function mapOr(mixed $default, callable $fn): mixed;
143143
*
144144
* @return U
145145
*/
146-
abstract public function mapOrElse(callable $default_fn, callable $fn): mixed;
146+
public function mapOrElse(callable $default_fn, callable $fn): mixed;
147147

148148
/**
149149
* 成功の場合は第2の結果を返し、失敗の場合は最初のエラーを返します.
@@ -154,7 +154,7 @@ abstract public function mapOrElse(callable $default_fn, callable $fn): mixed;
154154
*
155155
* @return Result<U, E>
156156
*/
157-
abstract public function and(self $res): self;
157+
public function and(self $res): self;
158158

159159
/**
160160
* 成功の場合は関数を適用し、失敗の場合は現在のエラーを返します.
@@ -165,7 +165,7 @@ abstract public function and(self $res): self;
165165
*
166166
* @return Result<U, E>
167167
*/
168-
abstract public function andThen(callable $fn): self;
168+
public function andThen(callable $fn): self;
169169

170170
/**
171171
* 失敗の場合は第2の結果を返し、成功の場合は最初の値を返します.
@@ -176,7 +176,7 @@ abstract public function andThen(callable $fn): self;
176176
*
177177
* @return Result<T, F>
178178
*/
179-
abstract public function or(self $res): self;
179+
public function or(self $res): self;
180180

181181
/**
182182
* 失敗の場合は関数を適用し、成功の場合は現在の値を返します.
@@ -187,7 +187,7 @@ abstract public function or(self $res): self;
187187
*
188188
* @return Result<T, F>
189189
*/
190-
abstract public function orElse(callable $fn): self;
190+
public function orElse(callable $fn): self;
191191

192192
/**
193193
* 成功の場合はok_fnを、失敗の場合はerr_fnを適用します.
@@ -201,5 +201,5 @@ abstract public function orElse(callable $fn): self;
201201
*
202202
* @return U|V 適用された関数の結果
203203
*/
204-
abstract public function match(callable $ok_fn, callable $err_fn): mixed;
204+
public function match(callable $ok_fn, callable $err_fn): mixed;
205205
}

0 commit comments

Comments
 (0)