{
    "template": "rational/ops/division.rs.template",
    "output": "rational/ops/division.rs",
    "trait": {
        "name": "Div",
        "fn_name": "div",
        "is_op_assign": false
    },
    "instances": [
        ["Rational", "Rational", "Rational", "Rational::divide_assign", "lhs", ["ref_mut"], ["ref"]],
        ["Rational", "&Rational", "Rational", "Rational::divide_assign", "lhs", ["ref_mut"], []],
        ["&Rational", "Rational", "Rational", "Rational::divide", "no", [], ["ref"]],
        ["&Rational", "&Rational", "Rational", "Rational::divide", "no", [], []],

        ["Rational", "Integer", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref"]],
        ["Rational", "&Integer", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], []],
        ["&Rational", "Integer", "Rational", "Rational::divide_integer", "no", [], ["ref"]],
        ["&Rational", "&Integer", "Rational", "Rational::divide_integer", "no", [], []],
        ["Integer", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["Integer", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&Integer", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&Integer", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "i8", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&i8", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "i8", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&i8", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["i8", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["i8", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&i8", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&i8", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "u8", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&u8", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "u8", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&u8", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["u8", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["u8", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&u8", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&u8", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        
        ["Rational", "i16", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&i16", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "i16", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&i16", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["i16", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["i16", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&i16", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&i16", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "u16", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&u16", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "u16", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&u16", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["u16", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["u16", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&u16", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&u16", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "i32", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&i32", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "i32", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&i32", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["i32", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["i32", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&i32", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&i32", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "u32", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&u32", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "u32", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&u32", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["u32", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["u32", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&u32", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&u32", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "i64", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&i64", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "i64", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&i64", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["i64", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["i64", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&i64", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&i64", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "u64", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&u64", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "u64", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&u64", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["u64", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["u64", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&u64", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&u64", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "i128", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&i128", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "i128", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&i128", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["i128", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["i128", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&i128", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&i128", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],

        ["Rational", "u128", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }]],
        ["Rational", "&u128", "Rational", "Rational::divide_assign_integer", "lhs", ["ref_mut"], ["ref", { "convert": "Integer" }, "deref"]],
        ["&Rational", "u128", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }]],
        ["&Rational", "&u128", "Rational", "Rational::divide_integer", "no", [], ["ref", { "convert": "Integer" }, "deref"]],
        ["u128", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["u128", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []],
        ["&u128", "Rational", "Rational", "divide_reuse_lhs", "no", [], ["ref"]],
        ["&u128", "&Rational", "Rational", "divide_reuse_lhs", "no", [], []]
    ]
}