Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
rouzwelt committed Nov 14, 2024
1 parent 025956f commit 7dbb1eb
Show file tree
Hide file tree
Showing 14 changed files with 24 additions and 107 deletions.
2 changes: 1 addition & 1 deletion crates/bindings/src/js_api.rs
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ impl From<MainTakeOrdersConfigV3> for TakeOrdersConfigV3 {
}

mod impls {
use super::super::{impl_all_wasm_traits, wasm_traits::prelude::*};
use crate::impl_all_wasm_traits;

impl_all_wasm_traits!(super::IO);
impl_all_wasm_traits!(super::Quote);
Expand Down
103 changes: 10 additions & 93 deletions crates/bindings/src/wasm_traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ pub mod prelude {
};
}

pub use prelude::*;

#[macro_export]
macro_rules! impl_main_wasm_traits {
($struct_name:path) => {
($struct_name:path) => {{
use $crate::wasm_traits::prelude::*;

impl WasmDescribe for $struct_name {
#[inline]
fn describe() {
Expand Down Expand Up @@ -55,12 +55,14 @@ macro_rules! impl_main_wasm_traits {
<<Self as Tsify>::JsType as OptionFromWasmAbi>::is_none(js)
}
}
};
}};
}

#[macro_export]
macro_rules! impl_complementary_wasm_traits {
($struct_name:path) => {
($struct_name:path) => {{
use $crate::wasm_traits::prelude::*;

impl RefFromWasmAbi for $struct_name {
type Abi = <JsValue as RefFromWasmAbi>::Abi;
type Anchor = Box<$struct_name>;
Expand Down Expand Up @@ -107,98 +109,13 @@ macro_rules! impl_complementary_wasm_traits {
from_value(value)
}
}
};
}};
}

#[macro_export]
macro_rules! impl_all_wasm_traits {
($struct_name:path) => {
impl WasmDescribe for $struct_name {
#[inline]
fn describe() {
<Self as Tsify>::JsType::describe()
}
}
impl IntoWasmAbi for $struct_name {
type Abi = <<Self as Tsify>::JsType as IntoWasmAbi>::Abi;

#[inline]
fn into_abi(self) -> Self::Abi {
let mut err = "".to_string();
self.into_js()
.inspect_err(|e| err.push_str(&e.to_string()))
.expect_throw(&err)
.into_abi()
}
}
impl OptionIntoWasmAbi for $struct_name {
#[inline]
fn none() -> Self::Abi {
<<Self as Tsify>::JsType as OptionIntoWasmAbi>::none()
}
}
impl FromWasmAbi for $struct_name {
type Abi = <<Self as Tsify>::JsType as FromWasmAbi>::Abi;

#[inline]
unsafe fn from_abi(js: Self::Abi) -> Self {
let mut err = "".to_string();
Self::from_js(<Self as Tsify>::JsType::from_abi(js))
.inspect_err(|e| err.push_str(&e.to_string()))
.expect_throw(&err)
}
}
impl OptionFromWasmAbi for $struct_name {
#[inline]
fn is_none(js: &Self::Abi) -> bool {
<<Self as Tsify>::JsType as OptionFromWasmAbi>::is_none(js)
}
}
impl RefFromWasmAbi for $struct_name {
type Abi = <JsValue as RefFromWasmAbi>::Abi;
type Anchor = Box<$struct_name>;
unsafe fn ref_from_abi(js: Self::Abi) -> Self::Anchor {
Box::new(<$struct_name>::from_abi(js))
}
}
impl LongRefFromWasmAbi for $struct_name {
type Abi = <JsValue as RefFromWasmAbi>::Abi;
type Anchor = Box<$struct_name>;
unsafe fn long_ref_from_abi(js: Self::Abi) -> Self::Anchor {
Box::new(<$struct_name>::from_abi(js))
}
}
impl VectorIntoWasmAbi for $struct_name {
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi;
fn vector_into_abi(vector: Box<[Self]>) -> Self::Abi {
js_value_vector_into_abi(vector)
}
}
impl VectorFromWasmAbi for $struct_name {
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi;
unsafe fn vector_from_abi(js: Self::Abi) -> Box<[Self]> {
js_value_vector_from_abi(js)
}
}
impl WasmDescribeVector for $struct_name {
fn describe_vector() {
inform(VECTOR);
<$struct_name>::describe();
}
}
impl From<$struct_name> for JsValue {
fn from(value: $struct_name) -> Self {
let mut err = "".to_string();
to_value(&value)
.inspect_err(|e| err.push_str(&e.to_string()))
.expect_throw(&err)
}
}
impl TryFromJsValue for $struct_name {
type Error = serde_wasm_bindgen::Error;
fn try_from_js_value(value: JsValue) -> Result<Self, Self::Error> {
from_value(value)
}
}
$crate::impl_main_wasm_traits!($struct_name);
$crate::impl_complementary_wasm_traits!($struct_name);
};
}
2 changes: 1 addition & 1 deletion crates/js_api/src/gui/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use alloy::primitives::Address;
use rain_orderbook_app_settings::gui::{
Gui, GuiDeployment, GuiFieldDefinition, ParseGuiConfigSourceError,
};
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
use rain_orderbook_common::dotrain_order::{DotrainOrder, DotrainOrderError};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
Expand Down
2 changes: 1 addition & 1 deletion crates/quote/src/js_api/impls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ use alloy::primitives::{
hex::{encode_prefixed, FromHex},
Address, U256,
};
use rain_orderbook_bindings::impl_all_wasm_traits;
use rain_orderbook_bindings::js_api::Quote;
use rain_orderbook_bindings::IOrderBookV4::{
Quote as MainQuote, SignedContextV1 as MainSignedContextV1,
};
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use std::str::FromStr;

impl From<OrderQuoteValue> for MainOrderQuoteValue {
Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/deployer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/deployment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/gui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/network.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use typeshare::typeshare;
use url::{ParseError, Url};

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/scenario.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
2 changes: 1 addition & 1 deletion crates/settings/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use thiserror::Error;
use typeshare::typeshare;

#[cfg(target_family = "wasm")]
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;
#[cfg(target_family = "wasm")]
use tsify::Tsify;

Expand Down
4 changes: 2 additions & 2 deletions crates/subgraph/src/multi_orderbook_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ pub struct MultiSubgraphArgs {
#[cfg(target_family = "wasm")]
mod wasm_impls {
use super::*;
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::d;

impl_all_wasm_traits!(MultiSubgraphArgs);
d!(MultiSubgraphArgs);
}

pub struct MultiOrderbookSubgraphClient {
Expand Down
2 changes: 1 addition & 1 deletion crates/subgraph/src/pagination.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub struct PaginationArgs {
#[cfg(target_family = "wasm")]
mod wasm_impls {
use super::*;
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;

impl_all_wasm_traits!(PaginationArgs);
}
Expand Down
2 changes: 1 addition & 1 deletion crates/subgraph/src/types/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -566,7 +566,7 @@ pub enum VaultOrderBy {
#[cfg(target_family = "wasm")]
mod impls {
use super::*;
use rain_orderbook_bindings::{impl_all_wasm_traits, wasm_traits::prelude::*};
use rain_orderbook_bindings::impl_all_wasm_traits;

impl_all_wasm_traits!(Order);
impl_all_wasm_traits!(Vault);
Expand Down

0 comments on commit 7dbb1eb

Please sign in to comment.