feat: add TryErr
This commit is contained in:
parent
53899d58a1
commit
e35674dbaa
@ -25,3 +25,27 @@ func (c *TryChain[T, V]) Or(callback func() (T, V)) *TryChain[T, V] {
|
|||||||
func (c *TryChain[T, V]) Done() (T, V) {
|
func (c *TryChain[T, V]) Done() (T, V) {
|
||||||
return c.result, c.error
|
return c.result, c.error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type TryChainErr struct {
|
||||||
|
err error
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTryErr() *TryChainErr {
|
||||||
|
return &TryChainErr{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TryChainErr) Try(callback func() error) *TryChainErr {
|
||||||
|
c.err = callback()
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TryChainErr) Or(callback func() error) *TryChainErr {
|
||||||
|
if c.err == nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return c.Try(callback)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *TryChainErr) Done() error {
|
||||||
|
return c.err
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user