Задать вопрос
  • Как получать в переменную значение из консоли и буфера обмена?

    @TicSo Автор вопроса
    Василий Банников,
    Так этож и так по умолчанию работает. Зачем что-то руками ещё реализовывать?
    например, я скопировал (Ctr+C) нужный мне фрагмент и при наличии в терминале `курсора-метки` вместо того, чтобы набирать ручками делаю (Ctr+V), но вставляется не этот фрагмент, а буквально символы: '^V', а хочу получить текст визуально, чтобы мог, например, в конце пару символов добавить с клавы или изменить.
  • Как получать в переменную значение из консоли и буфера обмена?

    @TicSo Автор вопроса
    Василий Банников, когда в терминале появляется `курсор-метка` для ввода с клавиатуры, - я могу туда внести строку с клавы и, если ошибся, поправить её, - т.е. визуально вижу этот текст. Хочу в этот инпут вносить текст не только с клавиатуры, но и по факту копирования в буфер (Ctr+C) или правой кнопкой мыши в vs code - `copy path`. Т.е., хочу получить возможность попадания текста в этот инпут (курсор-метка в терминале) двумя способами, - набором с клавиатуры или копи-пастом. Каждый способ по отдельности работает, а объединить, - не получается.
  • Как получить путь с коррекцией в переменную?

    @TicSo Автор вопроса
    код

    //  Если делал так:
    let cwd = std::env::current_dir().unwrap().parent().unwrap();
    let my_path = &cwd.to_str().unwrap();
    //  и в дальнейшем, использовал  my_path в своём коде так: 
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     ...txt".to_string() + &my_path + "txt...
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    //  то выдавало ошибку: 
    //      error[E0716]: temporary value dropped while borrowed
    //      creates a temporary value 
    
    //  Если всё в одну строку - то работает:  
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ...txt".to_string() + &std::env::current_dir().unwrap().parent().unwrap().to_str().unwrap() + "txt...
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


    Дмитрий Беляев, спасибо за помощь
  • Как получить путь с коррекцией в переменную?

    @TicSo Автор вопроса
    что-то я забуксовал,

    let cwd = std::env::current_dir().unwrap().parent().unwrap();

    у меня:

    error[E0599]: no method named `into_os_string` found for reference `&Path` in the current scope


    |
    88 | let my_path = cwd.into_os_string().into_string().unwrap();
    | ^^^^^^^^^^^^^^ method not found in `&Path`
  • Как получить путь с коррекцией в переменную?

    @TicSo Автор вопроса
    пробовал через `.to_str().map(|s| s.to_owned())` и отрезать по последней `\`, - не получилось ..
  • Как правильно принимать данные в потоках?

    @TicSo Автор вопроса
    Спасибо,

    Arc нужно клонировать до move в замыкание, которое запускается на потоке. Если данные используются только на чтение, то этого будет достаточно, ...

    использую на чтение, после коррекции, - получилось. Заминка - передать структуру. Как правильно применить Arc ко всем полям в случае моей структуры? Подскажите, пожалуйста.
    #[derive(Debug)]
    pub struct Data {
      pub name: String,
      pub dtime: chrono::DateTime<chrono::Local>, 
      pub id: i32,
      pub n: u32,
    }
    
    //
    
    let data = Data { name: "txt".to_string(), dtime: DateTime::parse_from_rfc3339("2023-07-10T10:20:30+03:00").unwrap().into(), id: 188, n: 5 };
  • Как правильно принимать данные в потоках?

    @TicSo Автор вопроса
    Я обернул создание отдельного потока в функцию и так передавал в поток данные. Удобно, что такую функцию могу вынести в отдельный файл-модуль. Но не смог такое сделать динамически в цикле для группы потоков. Хочу подойти к варианту, когда поток, который закончил выполнение своего кода (раньше других), можно опять запустить из main и передать ему новую задачу (новые данные), - структуру данных, которую привёл в основном вопросе.
  • Как правильно сложить дату-время в массив?

    @TicSo Автор вопроса
    Спасибо, всё верно.
  • Как изменить структуру кода?

    @TicSo Автор вопроса

    можешь попробовать сделать функцию, которая будет возвращать значения переменных i и p

    Спасибо за помощь, думал есть очевидное решение, о котором просто не знаю ...

    Если переменных много, то не уверен, что в качестве аргументов функции правильно их использовать. Возможно через структуру? Но всё ли я смогу так перемещать без ущерба функционала, так как потребность и вопрос о блоках с бОльшим количеством кода. Интересно решение без накладных расходов по производительности.

    Возможно ли такое делать на уровне `vs code`?

    чтобы при сборке он перемещался обратно - так хотел избежать косяков, если дебажить.


    Но можно сделать так: macro_rules! f4 { ...

    Опыта нет. С макросами проблем и ограничений быть не должно в контексте вопроса?