rusty_postgres

Macro delete

Source
macro_rules! delete {
    (@format $connection:expr,$model:expr,$client:expr) => { ... };
    (connection => $connection:expr,model:$model:expr,conditions:{
        $($condition:expr => $like:expr),*
    }) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        conditions:{
        $($condition:expr => $like:expr),*
    },select:{
        $($value:expr)*
    }) => { ... };
    (connection => $connection:expr,model:$model:expr,conditions:{
            $($condition:expr => $like:expr),*
    },cascade:$casecade:expr) => { ... };
    (connection => $connection:expr,
        model:$model:expr,
        conditions => {
            or => {
                $($condition:expr => $like:expr),*
            }
    }) => { ... };
    (connection => $connection:expr,
            model:$model:expr,
            conditions => {
            or => {$($condition:expr => $like:expr),*}
        },select:{
            $($value:expr)*
    }) => { ... };
    (connection => $connection:expr,model:$model:expr,conditions:{
        $($condition:expr => $like:expr),*
    },cascade:$casecade:expr) => { ... };
}
Expand description

ยงExample

delete!{
connection => conn,
model: "users",
conditions: { "id" => 123, "status" => "inactive" }
};
delete!{
connection => conn,
model: "users",
 conditions: { "id" => 123 },
select: { "email" "username" }
};
delete!{
connection => conn,
 model: "orders",
conditions: { "user_id" => 123 },
cascade: true
};
delete!{connection => conn,
 model: "products",
conditions => { or => { "category" => "electronics", "price" => 500 } }
};
delete!{
connection => conn,
 model: "products",
 conditions => { or => { "id" => 123, "category" => "clothing" } }, select: { "name","price" }
};
delete!{connection => conn,
 model: "logs",
conditions: { "event_type" => "error", "timestamp" => "2025-01-01" },
cascade: "true"
};