mirror of
https://github.com/netbirdio/IronRDP.git
synced 2026-05-22 18:43:12 -07:00
refactor(core): move impl_as_any macros
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
committed by
Benoît Cortier
parent
40cd8405f2
commit
4154ceea05
Generated
+8
@@ -2082,6 +2082,7 @@ name = "ironrdp-cliprdr"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"ironrdp-core",
|
||||
"ironrdp-pdu",
|
||||
"ironrdp-svc",
|
||||
"thiserror",
|
||||
@@ -2102,6 +2103,7 @@ name = "ironrdp-cliprdr-native"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ironrdp-cliprdr",
|
||||
"ironrdp-core",
|
||||
"ironrdp-svc",
|
||||
"thiserror",
|
||||
"tracing",
|
||||
@@ -2138,6 +2140,7 @@ dependencies = [
|
||||
name = "ironrdp-displaycontrol"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ironrdp-core",
|
||||
"ironrdp-dvc",
|
||||
"ironrdp-pdu",
|
||||
"ironrdp-svc",
|
||||
@@ -2250,6 +2253,7 @@ name = "ironrdp-rdpdr"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"ironrdp-core",
|
||||
"ironrdp-error",
|
||||
"ironrdp-pdu",
|
||||
"ironrdp-svc",
|
||||
@@ -2260,6 +2264,7 @@ dependencies = [
|
||||
name = "ironrdp-rdpdr-native"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ironrdp-core",
|
||||
"ironrdp-pdu",
|
||||
"ironrdp-rdpdr",
|
||||
"ironrdp-svc",
|
||||
@@ -2272,6 +2277,7 @@ name = "ironrdp-rdpsnd"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"ironrdp-core",
|
||||
"ironrdp-pdu",
|
||||
"ironrdp-svc",
|
||||
"tracing",
|
||||
@@ -2298,6 +2304,7 @@ dependencies = [
|
||||
"ironrdp-ainput",
|
||||
"ironrdp-async",
|
||||
"ironrdp-cliprdr",
|
||||
"ironrdp-core",
|
||||
"ironrdp-displaycontrol",
|
||||
"ironrdp-dvc",
|
||||
"ironrdp-graphics",
|
||||
@@ -2400,6 +2407,7 @@ dependencies = [
|
||||
"gloo-timers",
|
||||
"ironrdp",
|
||||
"ironrdp-cliprdr-format",
|
||||
"ironrdp-core",
|
||||
"ironrdp-futures",
|
||||
"ironrdp-rdcleanpath",
|
||||
"js-sys",
|
||||
|
||||
@@ -17,6 +17,7 @@ doctest = false
|
||||
test = false
|
||||
|
||||
[dependencies]
|
||||
ironrdp-core.workspace = true
|
||||
ironrdp-cliprdr.workspace = true
|
||||
ironrdp-svc.workspace = true
|
||||
tracing.workspace = true
|
||||
|
||||
@@ -3,7 +3,7 @@ use ironrdp_cliprdr::pdu::{
|
||||
ClipboardFormat, ClipboardGeneralCapabilityFlags, FileContentsRequest, FileContentsResponse, FormatDataRequest,
|
||||
FormatDataResponse, LockDataId,
|
||||
};
|
||||
use ironrdp_svc::impl_as_any;
|
||||
use ironrdp_core::impl_as_any;
|
||||
use tracing::debug;
|
||||
|
||||
pub struct StubClipboard;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use std::sync::mpsc as mpsc_sync;
|
||||
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_cliprdr::backend::CliprdrBackend;
|
||||
use ironrdp_cliprdr::pdu::{
|
||||
ClipboardFormat, ClipboardGeneralCapabilityFlags, FileContentsRequest, FileContentsResponse, FormatDataRequest,
|
||||
FormatDataResponse, LockDataId,
|
||||
};
|
||||
use ironrdp_svc::impl_as_any;
|
||||
use windows::Win32::Foundation::{HWND, LPARAM, WPARAM};
|
||||
use windows::Win32::UI::WindowsAndMessaging::PostMessageW;
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ doctest = false
|
||||
test = false
|
||||
|
||||
[dependencies]
|
||||
ironrdp-core.workspace = true
|
||||
ironrdp-pdu.workspace = true
|
||||
ironrdp-svc.workspace = true
|
||||
thiserror.workspace = true
|
||||
@@ -25,4 +26,3 @@ bitflags.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! This module provides infrastructure for implementing OS-specific clipboard backend.
|
||||
|
||||
use ironrdp_svc::AsAny;
|
||||
use ironrdp_core::AsAny;
|
||||
|
||||
use crate::pdu::{
|
||||
ClipboardFormat, ClipboardFormatId, ClipboardGeneralCapabilityFlags, FileContentsRequest, FileContentsResponse,
|
||||
|
||||
@@ -9,10 +9,11 @@ pub mod backend;
|
||||
pub mod pdu;
|
||||
|
||||
use backend::CliprdrBackend;
|
||||
use ironrdp_core::AsAny;
|
||||
use ironrdp_pdu::gcc::ChannelName;
|
||||
use ironrdp_pdu::{decode, PduResult};
|
||||
use ironrdp_svc::{
|
||||
AsAny, ChannelFlags, CompressionCondition, SvcClientProcessor, SvcMessage, SvcProcessor, SvcProcessorMessages,
|
||||
ChannelFlags, CompressionCondition, SvcClientProcessor, SvcMessage, SvcProcessor, SvcProcessorMessages,
|
||||
SvcServerProcessor,
|
||||
};
|
||||
use pdu::{
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
use core::any::Any;
|
||||
|
||||
/// Implement [`AsAny`] for the given type.
|
||||
#[macro_export]
|
||||
macro_rules! impl_as_any {
|
||||
($t:ty) => {
|
||||
impl $crate::AsAny for $t {
|
||||
#[inline]
|
||||
fn as_any(&self) -> &dyn core::any::Any {
|
||||
self
|
||||
}
|
||||
|
||||
#[inline]
|
||||
fn as_any_mut(&mut self) -> &mut dyn core::any::Any {
|
||||
self
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/// Type information (`TypeId`) may be retrieved at runtime for this type.
|
||||
pub trait AsAny: 'static {
|
||||
/// Returns a reference to the type information for this type.
|
||||
fn as_any(&self) -> &dyn Any;
|
||||
|
||||
/// Returns a mutable reference to the type information for this type.
|
||||
fn as_any_mut(&mut self) -> &mut dyn Any;
|
||||
}
|
||||
@@ -10,6 +10,12 @@ extern crate alloc;
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
|
||||
mod as_any;
|
||||
|
||||
// Flat API hierarchy of common traits and types
|
||||
|
||||
pub use self::as_any::*;
|
||||
|
||||
// Trait that can only be implemented within the current module
|
||||
pub(crate) mod private {
|
||||
#[doc(hidden)]
|
||||
|
||||
@@ -12,6 +12,7 @@ keywords.workspace = true
|
||||
categories.workspace = true
|
||||
|
||||
[dependencies]
|
||||
ironrdp-core.workspace = true
|
||||
ironrdp-dvc.workspace = true
|
||||
ironrdp-pdu.workspace = true
|
||||
ironrdp-svc.workspace = true
|
||||
@@ -19,4 +20,3 @@ tracing.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
|
||||
@@ -2,9 +2,10 @@ use crate::{
|
||||
pdu::{DisplayControlCapabilities, DisplayControlMonitorLayout, DisplayControlPdu},
|
||||
CHANNEL_NAME,
|
||||
};
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_dvc::{encode_dvc_messages, DvcClientProcessor, DvcMessage, DvcProcessor};
|
||||
use ironrdp_pdu::{cursor::ReadCursor, PduDecode, PduResult};
|
||||
use ironrdp_svc::{impl_as_any, ChannelFlags, SvcMessage};
|
||||
use ironrdp_svc::{ChannelFlags, SvcMessage};
|
||||
use tracing::debug;
|
||||
|
||||
/// A client for the Display Control Virtual Channel.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_dvc::{DvcMessage, DvcProcessor, DvcServerProcessor};
|
||||
use ironrdp_pdu::{decode, PduResult};
|
||||
use ironrdp_svc::impl_as_any;
|
||||
use tracing::debug;
|
||||
|
||||
use crate::{
|
||||
|
||||
@@ -6,8 +6,9 @@ use crate::{encode_dvc_messages, DvcProcessor, DynamicChannelSet, DynamicVirtual
|
||||
use alloc::vec::Vec;
|
||||
use core::any::TypeId;
|
||||
use core::fmt;
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_pdu as pdu;
|
||||
use ironrdp_svc::{impl_as_any, ChannelFlags, CompressionCondition, SvcClientProcessor, SvcMessage, SvcProcessor};
|
||||
use ironrdp_svc::{ChannelFlags, CompressionCondition, SvcClientProcessor, SvcMessage, SvcProcessor};
|
||||
use pdu::cursor::ReadCursor;
|
||||
use pdu::gcc::ChannelName;
|
||||
use pdu::other_err;
|
||||
|
||||
@@ -16,9 +16,9 @@ use alloc::vec::Vec;
|
||||
// Re-export ironrdp_pdu crate for convenience
|
||||
#[rustfmt::skip] // do not re-order this pub use
|
||||
pub use ironrdp_pdu;
|
||||
use ironrdp_core::assert_obj_safe;
|
||||
use ironrdp_core::{assert_obj_safe, AsAny};
|
||||
use ironrdp_pdu::{cast_length, encode_vec, other_err, PduEncode, PduResult};
|
||||
use ironrdp_svc::{self, AsAny, SvcMessage};
|
||||
use ironrdp_svc::{self, SvcMessage};
|
||||
|
||||
mod complete_data;
|
||||
use complete_data::CompleteData;
|
||||
|
||||
@@ -5,8 +5,9 @@ use crate::{encode_dvc_messages, CompleteData, DvcProcessor};
|
||||
use alloc::boxed::Box;
|
||||
use alloc::vec::Vec;
|
||||
use core::fmt;
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_pdu as pdu;
|
||||
use ironrdp_svc::{impl_as_any, ChannelFlags, CompressionCondition, SvcMessage, SvcProcessor, SvcServerProcessor};
|
||||
use ironrdp_svc::{ChannelFlags, CompressionCondition, SvcMessage, SvcProcessor, SvcServerProcessor};
|
||||
use pdu::cursor::ReadCursor;
|
||||
use pdu::gcc::ChannelName;
|
||||
use pdu::PduDecode as _;
|
||||
|
||||
@@ -17,6 +17,7 @@ test = false
|
||||
|
||||
|
||||
[target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies]
|
||||
ironrdp-core.workspace = true
|
||||
ironrdp-pdu.workspace = true
|
||||
ironrdp-svc.workspace = true
|
||||
ironrdp-rdpdr.workspace = true
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_pdu::PduResult;
|
||||
use ironrdp_rdpdr::pdu::efs::*;
|
||||
use ironrdp_rdpdr::pdu::esc::{ScardCall, ScardIoCtlCode};
|
||||
use ironrdp_rdpdr::pdu::RdpdrPdu;
|
||||
use ironrdp_rdpdr::RdpdrBackend;
|
||||
use ironrdp_svc::{impl_as_any, SvcMessage};
|
||||
use ironrdp_svc::SvcMessage;
|
||||
use nix::dir::{Dir, OwningIter};
|
||||
use std::ffi::CString;
|
||||
use std::io::Read;
|
||||
|
||||
@@ -16,6 +16,7 @@ doctest = false
|
||||
test = false
|
||||
|
||||
[dependencies]
|
||||
ironrdp-core.workspace = true
|
||||
ironrdp-error.workspace = true
|
||||
ironrdp-pdu.workspace = true
|
||||
ironrdp-svc.workspace = true
|
||||
@@ -24,4 +25,3 @@ bitflags.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ pub mod noop;
|
||||
|
||||
use core::fmt;
|
||||
|
||||
use ironrdp_core::AsAny;
|
||||
use ironrdp_pdu::PduResult;
|
||||
use ironrdp_svc::AsAny;
|
||||
|
||||
use crate::pdu::efs::{DeviceControlRequest, ServerDeviceAnnounceResponse, ServerDriveIoRequest};
|
||||
use crate::pdu::esc::{ScardCall, ScardIoCtlCode};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use ironrdp_core::impl_as_any;
|
||||
use ironrdp_pdu::PduResult;
|
||||
use ironrdp_svc::{impl_as_any, SvcMessage};
|
||||
use ironrdp_svc::SvcMessage;
|
||||
|
||||
use super::RdpdrBackend;
|
||||
use crate::pdu::efs::{DeviceControlRequest, ServerDeviceAnnounceResponse};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user