Skip to content

Prefer generating slice type functions where possible #71

Description

@sansmoraxz

As per the officially provided example:

#[derive(MultiIndexMap, Debug)]
#[multi_index_derive(Debug)]
#[multi_index_hash(rustc_hash::FxBuildHasher)]
struct Order {

    ...
    #[multi_index(hashed_non_unique)]
    trader_name: String,
    ...
}

currently generates functions:-

    ...
    fn get_by_trader_name(&self, key: &String) -> Vec<&Order>;
    fn update_by_trader_name(&mut self, key: &String, f: impl FnMut(&mut bool, &mut u64)) -> Vec<&Order>;
    fn modify_by_trader_name(&mut self, key: &String, f: impl FnMut(&mut Order)) -> Vec<&Order>;
    fn remove_by_trader_name(&mut self, key: &String) -> Vec<Order>;
    ...

It would be better IMO to generate:

    ...
    fn get_by_trader_name(&self, key: &str) -> Vec<&Order>;
    fn update_by_trader_name(&mut self, key: &str, f: impl FnMut(&mut bool, &mut u64)) -> Vec<&Order>;
    fn modify_by_trader_name(&mut self, key: &str, f: impl FnMut(&mut Order)) -> Vec<&Order>;
    fn remove_by_trader_name(&mut self, key: &str) -> Vec<Order>;
    ...

Same with Vec<T> to generate &[T].

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions