Допустим у меня есть image::ImageFormat::JPEG Или любой другой формат из этого Enum,
Как преобразовать его в строку (String / &str)? в "jpg" / "png" итд. Я так догадываюсь что вроде через fmt можно, но не понял как…
Оба способа выше возвращают String, т.е. выделяют память в куче. Если нужен просто &str, то хватит и простого match как в реализации Display выше - там будут использоваться просто статические строковые литералы ('static str).
Если речь идёт о крейтер image, то ImageFormat уже реализует Debug и можно сделать так:
let format = ImageFormat::PNG;
let s: String = format!("{:?}", format);
Да, у этой либы есть стнандартный дебаг, но у меня что-то не получилось переопределить его таким способом. Но позже я решил и не пытаться, по тому что не уверен стоит ли стандартные вещи переопределять, и сделать просто функцией
Стандартный дебаг мне бы подошел, но к сожалению он возвращает "jpeg" вместо "jpg"