Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wsdl_rs/media2: Configuration macro #113

Merged
merged 3 commits into from
Oct 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions schema/src/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -620,3 +620,76 @@ fn extension_inside_extension() {

let _ = yaserde::de::from_str::<tt::SecurityCapabilities>(ser).unwrap();
}

#[test]
#[cfg(feature = "media2")]
fn media2_configs_name_serialization() {
pub fn type_of<T>(_: &T) -> &str {
std::any::type_name::<T>()
}

assert_eq!(
"media2::GetConfiguration",
type_of(&media2::GetConfiguration::default())
);
assert_eq!(
"media2::GetVideoEncoderConfigurations",
type_of(&media2::GetVideoEncoderConfigurations::default())
);
assert_eq!(
"media2::GetVideoSourceConfigurations",
type_of(&media2::GetVideoSourceConfigurations::default())
);
assert_eq!(
"media2::GetAudioEncoderConfigurations",
type_of(&media2::GetAudioEncoderConfigurations::default())
);
assert_eq!(
"media2::GetAudioSourceConfigurations",
type_of(&media2::GetAudioSourceConfigurations::default())
);
assert_eq!(
"media2::GetAnalyticsConfigurations",
type_of(&media2::GetAnalyticsConfigurations::default())
);
assert_eq!(
"media2::GetMetadataConfigurations",
type_of(&media2::GetMetadataConfigurations::default())
);
assert_eq!(
"media2::GetAudioOutputConfigurations",
type_of(&media2::GetAudioOutputConfigurations::default())
);
assert_eq!(
"media2::GetAudioDecoderConfigurations",
type_of(&media2::GetAudioDecoderConfigurations::default())
);
assert_eq!(
"media2::GetVideoSourceConfigurationOptions",
type_of(&media2::GetVideoSourceConfigurationOptions::default())
);
assert_eq!(
"media2::GetVideoEncoderConfigurationOptions",
type_of(&media2::GetVideoEncoderConfigurationOptions::default())
);
assert_eq!(
"media2::GetAudioSourceConfigurationOptions",
type_of(&media2::GetAudioSourceConfigurationOptions::default())
);
assert_eq!(
"media2::GetAudioEncoderConfigurationOptions",
type_of(&media2::GetAudioEncoderConfigurationOptions::default())
);
assert_eq!(
"media2::GetMetadataConfigurationOptions",
type_of(&media2::GetMetadataConfigurationOptions::default())
);
assert_eq!(
"media2::GetAudioOutputConfigurationOptions",
type_of(&media2::GetAudioOutputConfigurationOptions::default())
);
assert_eq!(
"media2::GetAudioDecoderConfigurationOptions",
type_of(&media2::GetAudioDecoderConfigurationOptions::default())
);
}
67 changes: 37 additions & 30 deletions wsdl_rs/media2/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -406,25 +406,32 @@ pub struct DeleteProfileResponse {}

impl Validate for DeleteProfileResponse {}

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
prefix = "tr2",
namespace = "tr2: http://www.onvif.org/ver20/media/wsdl"
)]
pub struct GetConfiguration {
// Token of the requested configuration.
#[yaserde(prefix = "tr2", rename = "ConfigurationToken")]
pub configuration_token: Option<tt::ReferenceToken>,

// Contains the token of an existing media profile the configurations shall
// be compatible with.
#[yaserde(prefix = "tr2", rename = "ProfileToken")]
pub profile_token: Option<tt::ReferenceToken>,
}
macro_rules! config {
($name:ident) => {
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
prefix = "tr2",
namespace = "tr2: http://www.onvif.org/ver20/media/wsdl"
)]
pub struct $name {
// fields
// Token of the requested configuration.
#[yaserde(prefix = "tr2", rename = "ConfigurationToken")]
pub configuration_token: Option<tt::ReferenceToken>,

// Contains the token of an existing media profile the configurations shall
// be compatible with.
#[yaserde(prefix = "tr2", rename = "ProfileToken")]
pub profile_token: Option<tt::ReferenceToken>,
}
};
}

config!(GetConfiguration);

impl Validate for GetConfiguration {}

pub type GetVideoEncoderConfigurations = GetConfiguration;
config!(GetVideoEncoderConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -439,7 +446,7 @@ pub struct GetVideoEncoderConfigurationsResponse {

impl Validate for GetVideoEncoderConfigurationsResponse {}

pub type GetVideoSourceConfigurations = GetConfiguration;
config!(GetVideoSourceConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -454,7 +461,7 @@ pub struct GetVideoSourceConfigurationsResponse {

impl Validate for GetVideoSourceConfigurationsResponse {}

pub type GetAudioEncoderConfigurations = GetConfiguration;
config!(GetAudioEncoderConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -469,7 +476,7 @@ pub struct GetAudioEncoderConfigurationsResponse {

impl Validate for GetAudioEncoderConfigurationsResponse {}

pub type GetAudioSourceConfigurations = GetConfiguration;
config!(GetAudioSourceConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -484,7 +491,7 @@ pub struct GetAudioSourceConfigurationsResponse {

impl Validate for GetAudioSourceConfigurationsResponse {}

pub type GetAnalyticsConfigurations = GetConfiguration;
config!(GetAnalyticsConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -499,7 +506,7 @@ pub struct GetAnalyticsConfigurationsResponse {

impl Validate for GetAnalyticsConfigurationsResponse {}

pub type GetMetadataConfigurations = GetConfiguration;
config!(GetMetadataConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -514,7 +521,7 @@ pub struct GetMetadataConfigurationsResponse {

impl Validate for GetMetadataConfigurationsResponse {}

pub type GetAudioOutputConfigurations = GetConfiguration;
config!(GetAudioOutputConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -529,7 +536,7 @@ pub struct GetAudioOutputConfigurationsResponse {

impl Validate for GetAudioOutputConfigurationsResponse {}

pub type GetAudioDecoderConfigurations = GetConfiguration;
config!(GetAudioDecoderConfigurations);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand Down Expand Up @@ -664,7 +671,7 @@ pub struct SetAudioDecoderConfiguration {
impl Validate for SetAudioDecoderConfiguration {}

pub type SetAudioDecoderConfigurationResponse = SetConfigurationResponse;
pub type GetVideoSourceConfigurationOptions = GetConfiguration;
config!(GetVideoSourceConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -683,7 +690,7 @@ pub struct GetVideoSourceConfigurationOptionsResponse {

impl Validate for GetVideoSourceConfigurationOptionsResponse {}

pub type GetVideoEncoderConfigurationOptions = GetConfiguration;
config!(GetVideoEncoderConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -697,7 +704,7 @@ pub struct GetVideoEncoderConfigurationOptionsResponse {

impl Validate for GetVideoEncoderConfigurationOptionsResponse {}

pub type GetAudioSourceConfigurationOptions = GetConfiguration;
config!(GetAudioSourceConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -716,7 +723,7 @@ pub struct GetAudioSourceConfigurationOptionsResponse {

impl Validate for GetAudioSourceConfigurationOptionsResponse {}

pub type GetAudioEncoderConfigurationOptions = GetConfiguration;
config!(GetAudioEncoderConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -735,7 +742,7 @@ pub struct GetAudioEncoderConfigurationOptionsResponse {

impl Validate for GetAudioEncoderConfigurationOptionsResponse {}

pub type GetMetadataConfigurationOptions = GetConfiguration;
config!(GetMetadataConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -754,7 +761,7 @@ pub struct GetMetadataConfigurationOptionsResponse {

impl Validate for GetMetadataConfigurationOptionsResponse {}

pub type GetAudioOutputConfigurationOptions = GetConfiguration;
config!(GetAudioOutputConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand All @@ -773,7 +780,7 @@ pub struct GetAudioOutputConfigurationOptionsResponse {

impl Validate for GetAudioOutputConfigurationOptionsResponse {}

pub type GetAudioDecoderConfigurationOptions = GetConfiguration;
config!(GetAudioDecoderConfigurationOptions);

#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(
Expand Down
Loading