Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Engel Simulator 2020
Engel Simulator 2020
Commits
0f20277f
Commit
0f20277f
authored
Mar 29, 2021
by
Rahix
🦀
Browse files
Add second macro for cheats
parent
564163c5
Changes
2
Hide whitespace changes
Inline
Side-by-side
macro-impl/src/lib.rs
View file @
0f20277f
...
...
@@ -32,3 +32,33 @@ pub fn angel_system(args: TokenStream, input: TokenStream) -> TokenStream {
)
.into
()
}
#[proc_macro_attribute]
pub
fn
wasm_bindgen_anyhow
(
_args
:
TokenStream
,
input
:
TokenStream
)
->
TokenStream
{
let
f
=
syn
::
parse_macro_input!
(
input
as
syn
::
ItemFn
);
let
fname
=
f
.sig.ident
;
let
attrs
=
f
.attrs
;
let
inputs
=
f
.sig.inputs
;
let
block
=
f
.block
;
let
stmts
=
block
.stmts
;
let
rtype
=
f
.sig.output
;
let
vis
=
f
.vis
;
quote
::
quote!
(
#[wasm_bindgen]
#
(
#
attrs
)
*
#
vis
fn
#
fname
(
#
inputs
)
->
Result
<
(),
wasm_bindgen
::
JsValue
>
{
match
||
#
rtype
{
#
(
#
stmts
)
*
}()
{
Ok
(())
=>
Ok
(()),
Err
(
err
)
=>
Err
(
wasm_bindgen
::
JsValue
::
from_str
(
&
format!
(
"{}"
,
err
))
),
}
}
)
.into
()
}
src/cheats.rs
View file @
0f20277f
...
...
@@ -54,41 +54,23 @@ pub fn cheat_enable(password: &str) {
}
}
#[wasm_bindgen]
pub
fn
cheat_set_sanity
(
val
:
f32
)
->
Result
<
(),
wasm_bindgen
::
JsValue
>
{
match
||
->
anyhow
::
Result
<
()
>
{
// this is nice
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
SetSanity
(
val
))
?
;
Ok
(())
}()
{
// this is not nice
Ok
(())
=>
Ok
(()),
Err
(
err
)
=>
Err
(
wasm_bindgen
::
JsValue
::
from_str
(
&
format!
(
"{}"
,
err
))),
}
#[macro_impl::wasm_bindgen_anyhow]
pub
fn
cheat_set_sanity
(
val
:
f32
)
->
anyhow
::
Result
<
()
>
{
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
SetSanity
(
val
))
?
;
Ok
(())
}
#[wasm_bindgen]
pub
fn
cheat_set_shifts
(
val
:
u32
)
->
Result
<
(),
wasm_bindgen
::
JsValue
>
{
match
||
->
anyhow
::
Result
<
()
>
{
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
SetShifts
(
val
))
?
;
Ok
(())
}()
{
// this is not nice
Ok
(())
=>
Ok
(()),
Err
(
err
)
=>
Err
(
wasm_bindgen
::
JsValue
::
from_str
(
&
format!
(
"{}"
,
err
))),
}
#[macro_impl::wasm_bindgen_anyhow]
pub
fn
cheat_set_shifts
(
val
:
u32
)
->
anyhow
::
Result
<
()
>
{
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
SetShifts
(
val
))
?
;
Ok
(())
}
#[wasm_bindgen]
pub
fn
cheat_get_player
()
->
Result
<
(),
wasm_bindgen
::
JsValue
>
{
match
||
->
anyhow
::
Result
<
()
>
{
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
GetPlayer
())
?
;
Ok
(())
}()
{
// this is not nice
Ok
(())
=>
Ok
(()),
Err
(
err
)
=>
Err
(
wasm_bindgen
::
JsValue
::
from_str
(
&
format!
(
"{}"
,
err
))),
}
#[macro_impl::wasm_bindgen_anyhow]
pub
fn
cheat_get_player
()
->
anyhow
::
Result
<
()
>
{
let
state
=
get_cheat_state
()
?
;
state
.do_cheat
(
CheatCommand
::
GetPlayer
())
?
;
Ok
(())
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment