rust o#rustc 1.76.0 (07dca489a 2024-02-04) &_$ !-4f192af08beaa759 @A}}-62a9b4d83244cb2br#3JIb'' @-4010f8e9d1f7f9aarustc_std_workspace_core?-]-fa2288bf7728f91c addr2line),SO)R%X-a2e883cf5bcf6347gimli$?g')&-df8440ef641907f8object_O?#-9e012890a70780c2memchrG ̇삭-60338fe528589910vt'FKj-401344856f0fc3c5tests   mathtry_addtry_subtry_multry_div    a This Rust code snippet is defining a module named `math` and a submodule named `tests`. Here's ad2 breakdown of what each part of the code is doing:e5Cb The function `try_add` in Rust attempts to add two `u128` values and returns `Some(result)` if ane. overflow occurs, otherwise it returns `None`.j1 Arguments:a * `left_value`: The `left_value` parameter is a 128-bit unsigned integer (u128) representing thed( left operand in the addition operation.+a * `right_value`: The `right_value` parameter in the `try_add` function represents the value thatd- will be added to the `left_value` parameter.0 Returns: _ The function `try_add` returns an `Option`. If the sum of `left_value` and `right_value`bb overflows, it returns `Some(result_add)` with the overflowed value. Otherwise, it returns `None`.e   left_value  right_value Cc The function `try_sub` in Rust attempts to subtract two `u128` values and returns the result as anfJ `Option`, or `None` if the subtraction would result in an overflow.M    e * `left_value`: The `left_value` parameter represents the value from which the `right_value` will be h& subtracted in the `try_sub` function. )[ * `right_value`: The `right_value` parameter is the value that will be subtracted from the ^2 `left_value` parameter in the `try_sub` function. 5   ] The function `try_sub` returns an `Option`. If the subtraction operation `left_value - `[ right_value` is successful (i.e., no overflow occurs), it returns `Some(result_sub)` where ^c `result_sub` is the result of the subtraction. If an overflow occurs (which is incorrectly checkedfE with `if left_value >= left_value` instead of `if result_sub >= leftH   Cc The `try_mul` function in Rust attempts to multiply two `u128` values and returns the result as anfB `Option`, returning `None` if the multiplication overflows.E a * `left_value`: The `left_value` parameter represents the first value to be multiplied. It is ofd< type `u128`, which means it is an unsigned 128-bit integer.?c * `right_value`: The `right_value` parameter represents the second value to be multiplied with thef2 `left_value` parameter in the `try_mul` function.5 W The function `try_mul` returns an `Option`. It returns `Some(result_mut)` if theZe multiplication of `left_value` and `right_value` does not overflow and the division of the result byhA `left_value` equals `right_value`. Otherwise, it returns `None`.D   "Ca The `try_div` function in Rust attempts to perform division on two `u128` values and returns thedE result as an `Option`, or `None` if the division is not exact.H b * `left_value`: The `left_value` parameter represents the dividend in a division operation. It ise" the number that is being divided.%c * `right_value`: The `right_value` parameter in the `try_div` function represents the divisor in af] division operation. It is the value by which the `left_value` (dividend) will be divided. If`L `right_value` is equal to 0, the function will return `None` since divisionO   c The function `try_div` returns an `Option`. It returns `Some(result_mut)` if the division is fb successful and the result is correct, otherwise it returns `None` if the `right_value` is 0 or if!e" the division result is incorrect."%" " " ̗sq۞.f ŚY^iŤ93[utYM5)s4Ϡ#v 8R*=B xt\( b >wQ vP. <mU! [ 7I 'A O: HC Q/ =/ = .G #UtG  #1?M... ź]?',#9ODHT ̗sq۞R*=B 5)s4.f [utYMŤ93#v 8ŚY^iI_g&EAI_g&EAB/Users/nguyenductrang/Desktop/Contract/lib/lib_rust_dev/src/lib.rs :B%5 xӪP[+e6 ffS;h% =Oh