From cd614c0956fac71170e7ce4b3046da2f98215d87 Mon Sep 17 00:00:00 2001 From: Sam Willcocks Date: Thu, 19 Jun 2025 10:02:07 +0100 Subject: [PATCH] feature gate std stuff --- atem-connection-rs/Cargo.toml | 4 ++-- atem-connection-rs/src/atem.rs | 2 ++ atem-connection-rs/src/atem_lib/atem_socket.rs | 5 ++++- atem-connection-rs/src/atem_lib/mod.rs | 1 + atem-connection-rs/src/commands/command_base.rs | 5 ++++- .../src/commands/device_profile/product_identifier.rs | 7 ++++++- .../src/commands/device_profile/topology.rs | 2 +- .../src/commands/mix_effects/program_input.rs | 2 +- atem-connection-rs/src/commands/parse_commands.rs | 2 +- atem-connection-rs/src/lib.rs | 8 ++++++++ atem-connection-rs/src/state/atem_macro.rs | 2 ++ atem-connection-rs/src/state/fairlight.rs | 2 +- atem-connection-rs/src/state/info.rs | 2 ++ atem-connection-rs/src/state/input.rs | 2 ++ atem-connection-rs/src/state/media.rs | 2 ++ atem-connection-rs/src/state/recording.rs | 1 + atem-connection-rs/src/state/settings.rs | 1 + atem-connection-rs/src/state/streaming.rs | 1 + atem-connection-rs/src/state/util.rs | 1 + atem-connection-rs/src/state/video/mod.rs | 1 + atem-connection-rs/src/tally.rs | 1 + 21 files changed, 45 insertions(+), 9 deletions(-) diff --git a/atem-connection-rs/Cargo.toml b/atem-connection-rs/Cargo.toml index 732362e..1e08a94 100644 --- a/atem-connection-rs/Cargo.toml +++ b/atem-connection-rs/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] derive-getters = "0.2.0" derive-new = "0.6.0" -itertools = {version = "0.14.0"} +itertools = {version = "0.14.0", default-features = false} log = "0.4.14" tokio = { version = "1.13.0", features = ["full"], optional = true } tokio-util = { version = "0.7.10", optional = true } @@ -15,4 +15,4 @@ enumflags2 = { version = "0.7.12", default-features = false } [features] default = ["std"] -std = ["dep:tokio", "dep:tokio-util"] +std = ["dep:tokio", "dep:tokio-util", "itertools/use_std"] diff --git a/atem-connection-rs/src/atem.rs b/atem-connection-rs/src/atem.rs index bbfd9a0..f588212 100644 --- a/atem-connection-rs/src/atem.rs +++ b/atem-connection-rs/src/atem.rs @@ -1,9 +1,11 @@ use std::{ + boxed::Box, collections::{HashMap, VecDeque}, net::SocketAddr, ops::DerefMut, sync::Arc, time::Duration, + vec::Vec, }; use tokio::{select, sync::Semaphore}; diff --git a/atem-connection-rs/src/atem_lib/atem_socket.rs b/atem-connection-rs/src/atem_lib/atem_socket.rs index 89cffe3..f6dcd10 100644 --- a/atem-connection-rs/src/atem_lib/atem_socket.rs +++ b/atem-connection-rs/src/atem_lib/atem_socket.rs @@ -1,10 +1,13 @@ use std::{ - collections::VecDeque, + borrow::ToOwned, fmt::Display, io, net::SocketAddr, + string::{String, ToString}, sync::Arc, time::{Duration, Instant}, + vec, + vec::Vec, }; use itertools::Itertools; diff --git a/atem-connection-rs/src/atem_lib/mod.rs b/atem-connection-rs/src/atem_lib/mod.rs index 9e604ce..d0a6cd7 100644 --- a/atem-connection-rs/src/atem_lib/mod.rs +++ b/atem-connection-rs/src/atem_lib/mod.rs @@ -1,3 +1,4 @@ pub mod atem_field; pub mod atem_packet; +#[cfg(feature = "std")] pub mod atem_socket; diff --git a/atem-connection-rs/src/commands/command_base.rs b/atem-connection-rs/src/commands/command_base.rs index f754fc8..e55caef 100644 --- a/atem-connection-rs/src/commands/command_base.rs +++ b/atem-connection-rs/src/commands/command_base.rs @@ -1,4 +1,7 @@ -use std::{collections::HashMap, fmt::Debug, process::Command, sync::Arc}; +use std::{ + boxed::Box, collections::HashMap, fmt::Debug, process::Command, string::String, sync::Arc, + vec::Vec, +}; use crate::{enums::ProtocolVersion, state::AtemState}; diff --git a/atem-connection-rs/src/commands/device_profile/product_identifier.rs b/atem-connection-rs/src/commands/device_profile/product_identifier.rs index 6d79764..a51052e 100644 --- a/atem-connection-rs/src/commands/device_profile/product_identifier.rs +++ b/atem-connection-rs/src/commands/device_profile/product_identifier.rs @@ -1,4 +1,9 @@ -use std::{ffi::CString, sync::Arc}; +use std::{ + ffi::CString, + string::{String, ToString}, + sync::Arc, + vec, +}; use crate::{ commands::command_base::{CommandDeserializer, DeserializedCommand}, diff --git a/atem-connection-rs/src/commands/device_profile/topology.rs b/atem-connection-rs/src/commands/device_profile/topology.rs index 0f69cd1..4010610 100644 --- a/atem-connection-rs/src/commands/device_profile/topology.rs +++ b/atem-connection-rs/src/commands/device_profile/topology.rs @@ -1,4 +1,4 @@ -use std::sync::Arc; +use std::{sync::Arc, vec}; use crate::{ commands::command_base::{CommandDeserializer, DeserializedCommand}, diff --git a/atem-connection-rs/src/commands/mix_effects/program_input.rs b/atem-connection-rs/src/commands/mix_effects/program_input.rs index 85da9ac..8a38883 100644 --- a/atem-connection-rs/src/commands/mix_effects/program_input.rs +++ b/atem-connection-rs/src/commands/mix_effects/program_input.rs @@ -1,5 +1,5 @@ -use std::sync::Arc; use derive_new::new; +use std::{sync::Arc, vec, vec::Vec}; use crate::{ commands::command_base::{ diff --git a/atem-connection-rs/src/commands/parse_commands.rs b/atem-connection-rs/src/commands/parse_commands.rs index 2f83e10..3c4eb21 100644 --- a/atem-connection-rs/src/commands/parse_commands.rs +++ b/atem-connection-rs/src/commands/parse_commands.rs @@ -1,4 +1,4 @@ -use std::{collections::VecDeque, sync::Arc}; +use std::{boxed::Box, collections::VecDeque, sync::Arc}; use crate::{ atem_lib::atem_packet::{AtemPacket, RawFields}, diff --git a/atem-connection-rs/src/lib.rs b/atem-connection-rs/src/lib.rs index 3b421b2..8304049 100644 --- a/atem-connection-rs/src/lib.rs +++ b/atem-connection-rs/src/lib.rs @@ -1,8 +1,16 @@ +#![no_std] +#[cfg(feature = "std")] +extern crate std; +#[cfg(feature = "std")] pub mod atem; pub mod atem_lib; +#[cfg(feature = "std")] pub mod commands; +#[cfg(feature = "std")] pub mod enums; +#[cfg(feature = "std")] pub mod state; +#[cfg(feature = "std")] pub mod tally; diff --git a/atem-connection-rs/src/state/atem_macro.rs b/atem-connection-rs/src/state/atem_macro.rs index 0b5dd01..0a3a5d3 100644 --- a/atem-connection-rs/src/state/atem_macro.rs +++ b/atem-connection-rs/src/state/atem_macro.rs @@ -1,3 +1,5 @@ +use std::{string::String, vec::Vec}; + use derive_getters::Getters; use derive_new::new; #[derive(Clone, PartialEq, Getters, new, Default)] diff --git a/atem-connection-rs/src/state/fairlight.rs b/atem-connection-rs/src/state/fairlight.rs index 981adf7..bb7a861 100644 --- a/atem-connection-rs/src/state/fairlight.rs +++ b/atem-connection-rs/src/state/fairlight.rs @@ -1,6 +1,6 @@ -use std::collections::HashMap; use derive_getters::Getters; use derive_new::new; +use std::{collections::HashMap, string::String, vec::Vec}; use crate::enums::{ ExternalPortType, FairlightAnalogInputLevel, FairlightAudioMixOption, FairlightAudioSourceType, diff --git a/atem-connection-rs/src/state/info.rs b/atem-connection-rs/src/state/info.rs index 79a37b6..5f2699b 100644 --- a/atem-connection-rs/src/state/info.rs +++ b/atem-connection-rs/src/state/info.rs @@ -1,3 +1,5 @@ +use std::{string::String, vec::Vec}; + use crate::enums::{Model, ProtocolVersion}; use derive_getters::Getters; use derive_new::new; diff --git a/atem-connection-rs/src/state/input.rs b/atem-connection-rs/src/state/input.rs index 9b312b2..ab4a013 100644 --- a/atem-connection-rs/src/state/input.rs +++ b/atem-connection-rs/src/state/input.rs @@ -1,6 +1,8 @@ use crate::enums::{ExternalPortType, InternalPortType, MeAvailability, SourceAvailability}; use derive_getters::Getters; use derive_new::new; +use std::string::String; +use std::vec::Vec; #[derive(Clone, PartialEq, Getters, new)] pub struct InputChannel { diff --git a/atem-connection-rs/src/state/media.rs b/atem-connection-rs/src/state/media.rs index 7d10789..6ddce79 100644 --- a/atem-connection-rs/src/state/media.rs +++ b/atem-connection-rs/src/state/media.rs @@ -1,6 +1,8 @@ use crate::enums; use derive_getters::Getters; use derive_new::new; +use std::string::String; +use std::vec::Vec; #[derive(Clone, PartialEq, Getters, new)] pub struct MediaPlayer { diff --git a/atem-connection-rs/src/state/recording.rs b/atem-connection-rs/src/state/recording.rs index 58b62e4..1320f7f 100644 --- a/atem-connection-rs/src/state/recording.rs +++ b/atem-connection-rs/src/state/recording.rs @@ -1,6 +1,7 @@ use derive_getters::Getters; use derive_new::new; use std::collections::HashMap; +use std::string::String; use crate::enums::{RecordingDiskStatus, RecordingError, RecordingStatus}; diff --git a/atem-connection-rs/src/state/settings.rs b/atem-connection-rs/src/state/settings.rs index 7f965ba..01548fb 100644 --- a/atem-connection-rs/src/state/settings.rs +++ b/atem-connection-rs/src/state/settings.rs @@ -1,6 +1,7 @@ use crate::enums::{MultiViewerLayout, VideoMode}; use derive_getters::Getters; use derive_new::new; +use std::vec::Vec; pub trait MultiViewerSourceState { fn get_source(&self) -> u64; diff --git a/atem-connection-rs/src/state/streaming.rs b/atem-connection-rs/src/state/streaming.rs index aa04def..0ddb578 100644 --- a/atem-connection-rs/src/state/streaming.rs +++ b/atem-connection-rs/src/state/streaming.rs @@ -1,6 +1,7 @@ use crate::enums::{StreamingError, StreamingStatus}; use derive_getters::Getters; use derive_new::new; +use std::string::String; use super::common::Timecode; diff --git a/atem-connection-rs/src/state/util.rs b/atem-connection-rs/src/state/util.rs index de8dacf..c8f4654 100644 --- a/atem-connection-rs/src/state/util.rs +++ b/atem-connection-rs/src/state/util.rs @@ -1,4 +1,5 @@ use crate::enums::{TransitionSelection, TransitionStyle}; +use std::vec; use super::{ AtemState, diff --git a/atem-connection-rs/src/state/video/mod.rs b/atem-connection-rs/src/state/video/mod.rs index 4b3c396..c1a4ae5 100644 --- a/atem-connection-rs/src/state/video/mod.rs +++ b/atem-connection-rs/src/state/video/mod.rs @@ -1,6 +1,7 @@ use crate::enums; use derive_getters::Getters; use derive_new::new; +use std::vec::Vec; mod downstream_keyers; mod super_source; diff --git a/atem-connection-rs/src/tally.rs b/atem-connection-rs/src/tally.rs index 4b25bb0..c89512f 100644 --- a/atem-connection-rs/src/tally.rs +++ b/atem-connection-rs/src/tally.rs @@ -1,3 +1,4 @@ +use std::string::String; #[derive(Debug)] pub struct TallyEvent { tally_state: TallyState,