Anton
но попозже, когда с остальным говном разберусь
Все зотел спросить а без питона в твоем проекте никак?
Anton
Все зотел спросить а без питона в твоем проекте никак?
ну если ты ради меня напишешь мне парсер wiki-code парсер ast
Anton
то можно и без python)))
Anton
https://habrahabr.ru/post/148756/
Anton
На, читай там весь синтаксис
Anton
Ну а так вот еще https://en.wikipedia.org/wiki/Help:Wiki_markup
Anton
По факту это просто маркдаун с примесями handlebars
Anton
Короч, кореш подсказал как решить проблему с зависимостями и самим файлом app
Anton
без необходимости делать статичные либы
Anton
крч - сделать формулу для brew cask
Anton
и все проблемы решены
Anton
Есть один извращенский способ)
Anton
В парсере синтаксиса по сути нужно уметь делать дерево всего 3 типов: Шаблоны - {{}} Тэги вики - '' '' html тэги
Anton
вот и все
Vladimir
Ну еслиб ты сразу так сказал
Vladimir
Было б пррще
Filipp
Anton
увы я даже такое реализовать сейчас не смогу
Anton
по идее так вообще на regexp можно сделать
Anton
но опять таки это все не про меня)
Vladimir
Ладно, я буду ехать в поезде с сб на воскресенье, и всё обсудим
Anton
Инклудить библиотеку в код пролижения как байты, при запуске распаковывать в tmp, и линковатся к ней через libdl)
Vladimir
И попробую накатать чёт
Vladimir
Ещё раз скинь Линк на гихтаб
Vladimir
Чтоб я на твоё дерево аст глянул
Anton
Мсье, вы знаете толк
Ну как вариант)
Anton
https://github.com/friktor/wiki-reader
Anton
Ну крч заходишь в папочку wiki-parser
Anton
cat tests/wiki.txt | ./main.py
Anton
И получаешь в вывод дерево
Anton
в json
Anton
можешь его позырить в браузере
Anton
там ток одну либу нужно прогрузить, ты там напиши как соберешься, я тебе архив дам
Anton
зачем?
ну лично я только этот способ для парсинга данных знаю)
Алексей
не понимаю что не нравится компилятору, понимаю что несовпадение типов, подскажите как решить: error[E0308]: mismatched types —> src\main.rs:192:45 | 192 | let mut check_table_variable : String = "yDomains"; | ^^^^^^^^^^ expected struct std::string::String, found reference | = note: expected type std::string::String found type &'static str в этом коде:
Алексей
Алексей
check_table("yDomains", conn); так тоже ошибка
Алексей
fn check_table(table_name: String, conn2: Connection) { объявление функции
Filipp
строковый литерал создает &str, а тип у тебя String. Надо сделать String::from("yDomains")
Anton
Посоны
Anton
подскажите какой есть флаг компиляции, чтобы отдельно разделять выполнение функций в режиме дебага и релиза
Anton
cfg!(debug) и #[cfg(debug)] чот не робят
Алексей
строковый литерал создает &str, а тип у тебя String. Надо сделать String::from("yDomains")
я через from и push собирал строку , а-ля конкатенация. Но блин, почему в моём случае так ? пробовал дописывать .as_str() но не сработало
Алексей
привык что в других ЯП string это стринг, без фокусов, на крайняк еще char существует. А тут как то совсем по другому , особенно эти срезы строковые :(
Filipp
да String это динамический объект с данными на хипе, а строковые литералы хранятся в статической памяти, поэтому объекты надо создавать явно
Filipp
String::from("yDomains"). В том коде, что ты прислал именно String::from нехватает
Vladimir
или .to_owned/to_string()
123
Кто-нибудь знает, как обработать редирект в hyper`e? Т.е ситуация следующая: залогинившись на сайте, после отправки POST-запроса, сервер сначала кидает мне 302, а уже после - 200. Таким образом я вместо страницы, которую желаю получить, получаю сообщение о том, что происходит редирект. И если в брауере он происходит, то как обработать его в hyper`e я не знаю. Сервер не мой, если что
Vladimir
@tapok_satan само по себе дебаг не определишь, но есть #[macro_export] #[stable(feature = "rust1", since = "1.0.0")] macro_rules! debug_assert { ($($arg:tt)*) => (if cfg!(debug_assertions) { assert!($($arg)*); }) }
Vladimir
т.е. cfg debug_assertions
Алексей
String::from("yDomains"). В том коде, что ты прислал именно String::from нехватает
но ведь я же в объявлении переменной четко прописал тип , почему это не прокатило ?
Filipp
Ну одно дело объявить тип , а другое - создать экземпляр, который подходит под этот тип. let a: u64 = 'z'
Vladimir
но ведь я же в объявлении переменной четко прописал тип , почему это не прокатило ?
"asdasdas" - это статически заимствованная строка. В с++ терминологии string_view
Vladimir
ты книгу читал?
Алексей
ты книгу читал?
разумеется
Vladimir
разумеется
https://doc.rust-lang.org/book/first-edition/strings.html
Vladimir
Точно???
Алексей
ага... именно эту страницу читал, когда к озеру днём ходил
Filipp
https://doc.rust-lang.org/book/second-edition/ch08-02-strings.html И second edition'ом заполировать
Алексей
но не понимаю почему в моём случае так а не иначе
Vladimir
почему не понимаешь
Vladimir
let x:String = "asd";
Vladimir
должно работать?
Алексей
должно работать?
ну теперь понимаю что нет...
Алексей
.to_string() надо дописывать p.s. поправил
Vladimir
уже решил добавив features
ну можешь и так, и билд скрипт навернуть сверху
Алексей
тогда литарал конвертнёт в строку
Алексей
.as_str () и to_string() это тоже разные вещи :( вот почему у меня не прокатило
Алексей
тупизм на ровном месте (
Алексей
server_url.push_str(dbconfig.host.as_str()); server_url.push_str(":");
Vladimir
.to_string() надо дописывать p.s. поправил
еще раз, to_str нету такого. Есть два типа String - то чем ты владеешь и можешь менять &str - существует только в виде ссылке (может быть Box<str> для извращенцев, или Arc, Rc для еще более извращенцев). Но главная суть что изменять её размер нельзя. Теперь по методам *_str - это для типов str, обычно это as_str если тип может бесплатно превратится в строку (as кстати практически всегда бесплатные). *_string - это для типов String, они требуют аллокации, но иногда это нужно, а иногда по другому просто не возможно, обычно это to_string/ into_string