lib.rs 107 KiB
Newer Older
	fn try_successful_origin() -> Result<O, ()> {
		Ok(O::from(Origin::Response(Here.into())))
Francisco Aguirre's avatar
Francisco Aguirre committed
/// A simple passthrough where we reuse the `Location`-typed XCM origin as the inner value of
/// this crate's `Origin::Xcm` value.
Sergej Sakac's avatar
Sergej Sakac committed
pub struct XcmPassthrough<RuntimeOrigin>(PhantomData<RuntimeOrigin>);
impl<RuntimeOrigin: From<crate::Origin>> ConvertOrigin<RuntimeOrigin>
	for XcmPassthrough<RuntimeOrigin>
{
Francisco Aguirre's avatar
Francisco Aguirre committed
		origin: impl Into<Location>,
Francisco Aguirre's avatar
Francisco Aguirre committed
	) -> Result<RuntimeOrigin, Location> {
		match kind {
			OriginKind::Xcm => Ok(crate::Origin::Xcm(origin).into()),
			_ => Err(origin),