in src/control.rs [827:852]
fn extract_secondary_indexes<T: IndexDesc>(
mode: &Mode,
attr_defs: &[AttributeDefinition],
option_indexes: Option<Vec<T>>,
) -> Option<Vec<PrintSecondaryIndex>> {
if let Some(indexes) = option_indexes {
let mut xs = Vec::<PrintSecondaryIndex>::new();
for idx in &indexes {
let ks = &idx.retrieve_key_schema().as_ref().unwrap();
let idx = PrintSecondaryIndex {
name: String::from(idx.retrieve_index_name().as_ref().unwrap()),
schema: PrintPrimaryKeys {
pk: app::typed_key_for_schema("HASH", ks, attr_defs)
.expect("pk should exist")
.display(),
sk: app::typed_key_for_schema("RANGE", ks, attr_defs).map(|k| k.display()),
},
capacity: idx.extract_index_capacity(mode),
};
xs.push(idx);
}
Some(xs)
} else {
None
}
}