cal-jambonz 0.1.72

Jambonz Verbs
Documentation

use crate::verbs::recognizer::Recognizer;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Clone)]
pub struct Amd {
 
    #[serde(rename = "actionHook")]
    pub action_hook: String,
  
    #[serde(skip_serializing_if = "Option::is_none")]
    pub recognizer: Option<Recognizer>,
   
    #[serde(rename = "thresholdWordCount")]
    #[serde(skip_serializing_if = "Option::is_none")]
    pub threshold_word_count: Option<u8>,
    
    #[serde(rename = "digitCount")]
    #[serde(skip_serializing_if = "Option::is_none")]
    pub digit_count: Option<u8>,
  
    #[serde(skip_serializing_if = "Option::is_none")]
    pub timers: Option<Timers>,
}

impl Amd {
    pub fn new(action_hook: String) -> Amd {
        Amd {
            action_hook,
            recognizer: None,
            threshold_word_count: None,
            digit_count: None,
            timers: None,
        }
    }

    pub fn recognizer(&mut self, recognizer: Option<Recognizer>) -> &mut Amd {
        self.recognizer = recognizer;
        self
    }

    pub fn threshold_word_count(&mut self, threshold_word_count: Option<u8>) -> &mut Amd {
        self.threshold_word_count = threshold_word_count;
        self
    }

    pub fn digit_count(&mut self, digit_count: Option<u8>) -> &mut Amd {
        self.digit_count = digit_count;
        self
    }

    pub fn timers(&mut self, timers: Option<Timers>) -> &mut Amd {
        self.timers = timers;
        self
    }
}

#[derive(Serialize, Deserialize, Clone)]
pub struct Timers {
   
    #[serde(rename = "decisionTimeoutMs")]
    #[serde(skip_serializing_if = "Option::is_none")]
    decision_timeout_ms: Option<u16>,
   
    #[serde(rename = "greetingCompletionTimeoutMs")]
    #[serde(skip_serializing_if = "Option::is_none")]
    greeting_completion_timeout_ms: Option<u16>,
   
    #[serde(rename = "noSpeechTimeoutMs")]
    #[serde(skip_serializing_if = "Option::is_none")]
    no_speech_timeout_ms: Option<u16>,
   
    #[serde(rename = "toneTimeoutMs")]
    #[serde(skip_serializing_if = "Option::is_none")]
    tone_timeout_ms: Option<u16>,
}

impl Timers {
    pub fn new() -> Timers {
        Timers {
            decision_timeout_ms: None,
            greeting_completion_timeout_ms: None,
            no_speech_timeout_ms: None,
            tone_timeout_ms: None,
        }
    }

    pub fn decision_timeout_ms(&mut self, decision_timeout_ms: Option<u16>) -> &mut Timers {
        self.decision_timeout_ms = decision_timeout_ms;
        self
    }

    pub fn greeting_completion_timeout_ms(
        &mut self,
        greeting_completion_timeout_ms: Option<u16>,
    ) -> &mut Timers {
        self.greeting_completion_timeout_ms = greeting_completion_timeout_ms;
        self
    }

    pub fn no_speech_timeout_ms(&mut self, no_speech_timeout_ms: Option<u16>) -> &mut Timers {
        self.no_speech_timeout_ms = no_speech_timeout_ms;
        self
    }

    pub fn tone_timeout_ms(&mut self, tone_timeout_ms: Option<u16>) -> &mut Timers {
        self.tone_timeout_ms = tone_timeout_ms;
        self
    }
}