binary_options_tools_core/general/
validate.rs1use crate::error::{BinaryOptionsResult, BinaryOptionsToolsError};
2
3use super::traits::MessageTransfer;
4
5pub fn validate<Transfer>(
6 validator: impl Fn(&Transfer) -> bool + Send + Sync,
7 message: Transfer,
8) -> BinaryOptionsResult<Option<Transfer>>
9where
10 Transfer: MessageTransfer,
11{
12 if let Some(e) = message.error() {
13 Err(BinaryOptionsToolsError::WebSocketMessageError(
14 e.to_string(),
15 ))
16 } else if validator(&message) {
17 Ok(Some(message))
18 } else {
19 Ok(None)
20 }
21}