rusty_postgres

Macro find_many

Source
macro_rules! find_many {
    (@format $connection:expr,$model:expr,$client:expr) => { ... };
    (connection => $connection:expr,model => $model:expr) => { ... };
    (connection => $connection:expr,model:$model:expr) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    condition:{
        $($value_where:expr => $where_by:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($values:expr),*
    },
    condition:{
        $($value_where:expr => $where_by:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        }
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
        $($value_where_and:expr => $where_by_and:expr)*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
            $($value_where_and:expr => $where_by_and:expr)*
    },limit:$limit:expr) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
        $($value_where_and:expr => $where_by_and:expr)*
    },limit:$limit:expr,skip:$skip:expr) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
        $($value_where_and:expr => $where_by_and:expr)*
    },limit:$limit:expr,
    skip:$skip:expr,
    order:{
        $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    condition:{
        $($value_where_and:expr => $where_by_and:expr)*
    },
    limit:$limit:expr,
    skip:$skip:expr,
    order:{
            $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    condition:{
        $($value_where_and:expr => $where_by_and:expr)*
    },
    limit:$limit:expr,
    order:{
        $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        condition:{
            $($value_where_and:expr => $where_by_and:expr)*
        },
        skip:$skip:expr,
        order:{
                $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        condition:{
            $($value_where_and:expr => $where_by_and:expr)*
        },
        order:{
                $($order_by:expr => $order:expr),*
        }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        select:{
            $($select:expr),*
        },
        condition:{
            $($value_where_and:expr => $where_by_and:expr),*
        },
        order:{
                $($order_by:expr => $order:expr),*
        }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        select:{
            $($select:expr),*
        },
        condition:{
            $($value_where_and:expr => $where_by_and:expr),*
        },
        limit:$limit:expr) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        select:{
            $($select:expr),*
        },
        condition:{
            $($value_where_and:expr => $where_by_and:expr),*
        }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        condition:{
            $($value_where_and:expr => $where_by_and:expr),*
        },
        limit:$limit:expr) => { ... };
    (connection => $connection:expr,
     model:$model:expr,
     conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
        $($value_where_and:expr => $where_by_and:expr)*
    },
    skip:$skip:expr,
    order:{
        $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    conditions:{
        or => {
            $($value_where:expr => $where_by:expr),*
        },
        $($value_where_and:expr => $where_by_and:expr)*
    },order:{
        $($order_by:expr => $order:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions : {
        or => {
            $($or_value_or:expr => $or_value_orr:expr),*
        }
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions : {
        or => {
            $($or_value1:expr => $or_value2:expr),*
        },
            $($and_values:expr => $and_value:expr),*
    }
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or => {$($or_values:expr => $or_value:expr),*}
    },
    order : {$($target:expr => $order:expr),*}) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or => {$($or_values:expr => $or_value:expr),*}
    },
    limit:$limit:expr,
    skip:$skip:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    limit:$limit:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    skip:$skip:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    order : {$($target:expr => $order:expr),*}
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions:{
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
        limit:$limit:expr,
        skip:$skip:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions : {
        $($and_values:expr => $and_value:expr),*
    },
    order : {$($target:expr => $order:expr),*}
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions => {
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    order : {$($target:expr => $order:expr),*},
    limit:$limit:expr,
    skip:$skip:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions => {
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    order : {$($target:expr => $order:expr),*},
    limit:$limit:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    select:{
        $($select_value:expr),*
    },
    conditions => {
        or =>  {$($or_value1:expr => $or_value2:expr),*},
        $($and_values:expr => $and_value:expr),*
    },
    order : {$($target:expr => $order:expr),*},
    skip:$skip:expr
    ) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    condition:{$($condition:expr => $value:expr),*},
    include:{$($include:expr),*},
    match:{
        $match:expr => $match_value:expr
    }) => { ... };
    (connection => $connection:expr,
    model:$model:expr,
    condition:{$($condition:expr => $value:expr),*},
    include:{$($include:expr => {$($select:expr),*}),*},
    match:{
        $match:expr => $match_value:expr
    }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        select:{$($select_value:expr),*},
        condition:{$($condition:expr => $value:expr),*},
        include:{$($include:expr => {$($select:expr),*}),*},
        match:{
        $match:expr => $match_value:expr
    }) => { ... };
    (connection => $connection:expr,model:$model:expr,select:{$($select_value:expr),*},
    condition:{$($condition:expr => $value:expr),*},
    within:{
        lattitude:$lattitude:expr,
        longitude:$longitude:expr,
        within:$within:expr
    },
    also_include:{
         $location:expr
    }) => { ... };
    (connection => $connection:expr,model:$model:expr,select:{$($select_value:expr),*},
    within:{
        lattitude:$lattitude:expr,
        longitude:$longitude:expr,
        within:$within:expr
    },
    also_include:{
         $location:expr
    }) => { ... };
    (connection => $connection:expr,model:$model:expr,select:{$($select_value:expr),*},
    within:{
        lattitude:$lattitude:expr,
        longitude:$longitude:expr,
        within:$within:expr
    },
    also_include:{
         $location:expr
    },limit:$limit:expr) => { ... };
    (connection => $connection:expr,model:$model:expr,select:{$($select_value:expr),*},
    also_include:{
         $location:expr
    }) => { ... };
}
Expand description

§Example

1

let find = find_many! {
    connection => postgres,
    model:"elonmusk",
    condition:{
        "story" => "haribillionaire"
    }
};

2`

let find = find_many! {
    connection => postgres,
    model:"elonmusk",
    select:{
        "story"
    },
    condition:{
        "story" => "haribillionaire"
    }
};

10

let find = find_many! {
    connection => postgres,
    model:"elonmusk",
    conditions:{
        or => {
            "story" => "billionairehari"
        },
        "story" => "billionairehari"
    },
    limit:0,
    skip:0,
    order:{
        "story" => "asc"
    }
};
let location = nearby_location! {
connection => postgres,
model:"shop",
select:{
    "other_than_location_type"
},
location:{
    lattitude:"12.971599",
    longitude:"77.594566"
},
select_from:{
    "location"
}
};

/// ``` let location = nearby_location! { connection => postgres, model:“shop”, select:{ “other_than_location_type” }, location:{ lattitude:“12.971599”, longitude:“77.594566” }, select_from:{ “location” } };