mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
* cformat.rs: refactor fill_string to take fill_with_precision This allows it to be used with both self.min_field_width and self.precision, which is necessary for padding out %ds with precision. * cformat.rs: zero-pad %d entries using precision This matches CPython's behaviour. * cformat.rs: don't left-adjust when filling with precision That will always be prepending 0s to %d arguments, the LEFT_ADJUST flag will be used by a later call to `fill_string` with the 0-filled string as the `string` param. * floats: handle alternate form of general formatting * cformat.rs: convert width/precision to i32 In CPython, width can be isize but precision can only be i32. Our implementation currently assumes the same type for both: as CPython's tests assert on overflows for precision, but not for width, we use that size for both. * test_format: run test_common_format Except for the line which raises an OverflowError in CPython, because overflows in Rust (and therefore RustPython) abort the process immediately. * test_types: don't expect test_float_to_string to fail Its string formatting usage now works as expected.