const A: &str = "A";
const B: &str = "B";
// Так не работает
const A_B: &str = A + B;
// И так не работает
const C: &str = concat!(A, B);
fn main() {
}
Такая issue была в репе раста: https://github.com/rust-lang/rust/issues/31383
По сути можно заюзать уже готовый макрос для этих целей созданный: https://crates.io/crates/const-concat
Единственное, там не смёржен PR, добавляющий ещё 2 feature флага, поэтому надо использователь ветку у форка:
const-concat = { git = “https://github.com/Candunc/const-concat”, branch = “patch-1” }
Я бы написал процедурный макрос. Потому что “велосипеды” это наше всё.
const fn
Сообщение должно быть не короче 20 символов(глупое ограничение форума потребовало добавить этот текст)
Вот лучше бы ссылку на подробности и контекстный пример кинул, вместо ворчания на ограничения.
Предложенный мной способ не сработал.
я думал внутри consf fn создать static буфер, в буфер положить строки и ссылку на слайс переконвертить в ссылку на str
Но внутри const fn оно почему-то не дает использовать unsafe