mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[experiment] add alternative wasm sqlite3 implementation available via build-tag (#2863)
This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
This commit is contained in:
45
vendor/github.com/tetratelabs/wazero/experimental/sys/error.go
generated
vendored
Normal file
45
vendor/github.com/tetratelabs/wazero/experimental/sys/error.go
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
package sys
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/fs"
|
||||
"os"
|
||||
)
|
||||
|
||||
// UnwrapOSError returns an Errno or zero if the input is nil.
|
||||
func UnwrapOSError(err error) Errno {
|
||||
if err == nil {
|
||||
return 0
|
||||
}
|
||||
err = underlyingError(err)
|
||||
switch err {
|
||||
case nil, io.EOF:
|
||||
return 0 // EOF is not a Errno
|
||||
case fs.ErrInvalid:
|
||||
return EINVAL
|
||||
case fs.ErrPermission:
|
||||
return EPERM
|
||||
case fs.ErrExist:
|
||||
return EEXIST
|
||||
case fs.ErrNotExist:
|
||||
return ENOENT
|
||||
case fs.ErrClosed:
|
||||
return EBADF
|
||||
}
|
||||
return errorToErrno(err)
|
||||
}
|
||||
|
||||
// underlyingError returns the underlying error if a well-known OS error type.
|
||||
//
|
||||
// This impl is basically the same as os.underlyingError in os/error.go
|
||||
func underlyingError(err error) error {
|
||||
switch err := err.(type) {
|
||||
case *os.PathError:
|
||||
return err.Err
|
||||
case *os.LinkError:
|
||||
return err.Err
|
||||
case *os.SyscallError:
|
||||
return err.Err
|
||||
}
|
||||
return err
|
||||
}
|
Reference in New Issue
Block a user