use crate::initializers::expected_parameter_counts;
use super::RnnApiError;
pub fn rnn_validate_dense_topology(topology: &[usize]) -> Result<(), RnnApiError> {
if topology.len() < 2 {
return Err(RnnApiError::InvalidTopology);
}
if topology.contains(&0) {
return Err(RnnApiError::InvalidTopology);
}
Ok(())
}
pub fn rnn_validate_dense_counts(
topology: &[usize],
weights_len: usize,
biases_len: usize,
) -> Result<(), RnnApiError> {
rnn_validate_dense_topology(topology)?;
let (expected_w, expected_b) = expected_parameter_counts(topology).ok_or(RnnApiError::InvalidTopology)?;
if expected_w != weights_len || expected_b != biases_len {
return Err(RnnApiError::CapacityTooSmall);
}
Ok(())
}