feat: add TryErr

This commit is contained in:
Paul Pan 2024-01-06 15:04:52 +08:00
parent 53899d58a1
commit e35674dbaa
Signed by: Paul
GPG Key ID: D639BDF5BA578AF4

View File

@ -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) {
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
}