Skip to content

Commit

Permalink
Merge pull request #113 from kfuseini/main
Browse files Browse the repository at this point in the history
wsdl_rs/media2: Configuration macro
  • Loading branch information
DmitrySamoylov authored Oct 23, 2023
2 parents c41264d + b92af4e commit 16d0694
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 30 deletions.
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

0 comments on commit 16d0694

Please sign in to comment.