AVAudioConverter в MPEG4AAC не сжимает

Вы не можете так поступать в стабильной ржавчине. Ваш пример из 1000 * "abc" также не запускается в «время компиляции» на Python, насколько я понимаю Python.

Включая файл

Если у него есть , чтобы быть статичным, вы можете использовать скрипт сборки Cargo . Это немного кода Rust, который может сделать много вещей, прежде чем ваш код будет скомпилирован. В частности, вы можете написать исходный файл, в котором есть ваша строка, а затем использовать include_str! , чтобы привести его в свой ящик:

build.rs

use std::{
    env, error::Error, fs::File, io::{BufWriter, Write}, path::Path,
};

fn main() -> Result<(), Box> {
    let out_dir = env::var("OUT_DIR")?;
    let dest_path = Path::new(&out_dir).join("long_string.txt");
    let mut f = BufWriter::new(File::create(&dest_path)?);

    let long_string = "abc".repeat(100);
    write!(f, "{}", long_string)?;

    Ok(())
}

lib.rs

static LONG_STRING: &'static str = include_str!(concat!(env!("OUT_DIR"), "/long_string.txt"));

Lazy initialization

Вы можете создать значение lazy_static , которое будет иметь вашу строку, которая будет создана только один раз. Это делается во время выполнения, но только один раз.

См. Также:

Дальнее будущее

В какой-то момент RFC 911 будет полностью реализован. Это плюс несколько дополнительных RFC, каждый из которых добавляет новые функции, позволит вам написать что-то вроде:

// Does not work yet!
static LONG_STR: String = "abc".repeat(1000);

0
задан Paul 15 January 2019 в 23:26
поделиться