mirror of
https://github.com/tursom/GoCollections.git
synced 2025-04-12 02:22:52 +08:00
update exceptions.Exec
This commit is contained in:
parent
d0df6598ca
commit
474e2fc5c5
8116
exceptions/Exec.go
8116
exceptions/Exec.go
File diff suppressed because it is too large
Load Diff
71
exceptions/exec.py
Normal file
71
exceptions/exec.py
Normal file
@ -0,0 +1,71 @@
|
||||
def arg_list(arg_size):
|
||||
if arg_size == 0:
|
||||
return ""
|
||||
return "".join([f"a{a + 1} A{a + 1}, " for a in range(arg_size)])[:-2]
|
||||
|
||||
|
||||
def type_list(arg_size, c):
|
||||
if arg_size == 0:
|
||||
return ""
|
||||
return "".join([f"{c}{a + 1}, " for a in range(arg_size)])[:-2]
|
||||
|
||||
|
||||
def arg_type(arg_size):
|
||||
if arg_size == 0:
|
||||
return ""
|
||||
return type_list(arg_size, "A")
|
||||
|
||||
|
||||
def ret_type(arg_size):
|
||||
return type_list(arg_size, "T")
|
||||
|
||||
|
||||
for arg_size in range(32):
|
||||
AT = type_list(arg_size, "A")
|
||||
al = type_list(arg_size, "a")
|
||||
for ret_size in range(32):
|
||||
RT = type_list(ret_size, "R")
|
||||
rl = type_list(ret_size, "r")
|
||||
if ret_size > 1:
|
||||
RTC = f"({RT})"
|
||||
else:
|
||||
RTC = RT
|
||||
|
||||
if arg_size == 0:
|
||||
if ret_size == 0:
|
||||
print(
|
||||
f"func Exec{arg_size}r{ret_size}[E error](f func() (E))" " {\n "
|
||||
f" err := f()\n"
|
||||
" if error(err) != nil {\n"
|
||||
" panic(Package(err))\n"
|
||||
" }\n"
|
||||
f" return\n"
|
||||
"}\n")
|
||||
else:
|
||||
print(
|
||||
f"func Exec{arg_size}r{ret_size}[{RT} any, E error](f func() ({RT}, E)) {RTC}" " {\n "
|
||||
f" {rl}, err := f()\n"
|
||||
" if error(err) != nil {\n"
|
||||
" panic(Package(err))\n"
|
||||
" }\n"
|
||||
f" return {rl}\n"
|
||||
"}\n")
|
||||
else:
|
||||
if ret_size == 0:
|
||||
print(
|
||||
f"func Exec{arg_size}r{ret_size}[{AT} any, E error](f func({AT}) (E), {arg_list(arg_size)})" " {\n"
|
||||
f" err := f({al})\n"
|
||||
" if error(err) != nil {\n"
|
||||
" panic(Package(err))\n"
|
||||
" }\n"
|
||||
f" return\n"
|
||||
"}\n")
|
||||
else:
|
||||
print(
|
||||
f"func Exec{arg_size}r{ret_size}[{AT}, {RT} any, E error](f func({AT}) ({RT}, E), {arg_list(arg_size)}) {RTC}" " {\n "
|
||||
f" {rl}, err := f({al})\n"
|
||||
" if error(err) != nil {\n"
|
||||
" panic(Package(err))\n"
|
||||
" }\n"
|
||||
f" return {rl}\n"
|
||||
"}\n")
|
Loading…
Reference in New Issue
Block a user