Anton
то можно и без python)))
Евгений
Anton
https://habrahabr.ru/post/148756/
Anton
На, читай там весь синтаксис
Anton
Ну а так вот еще https://en.wikipedia.org/wiki/Help:Wiki_markup
Alex
Anton
По факту это просто маркдаун с примесями handlebars
Anton
Короч, кореш подсказал как решить проблему с зависимостями и самим файлом app
Anton
без необходимости делать статичные либы
Anton
крч - сделать формулу для brew cask
Anton
и все проблемы решены
Anton
Есть один извращенский способ)
Anton
В парсере синтаксиса по сути нужно уметь делать дерево всего 3 типов:
Шаблоны - {{}}
Тэги вики - '' ''
html тэги
Anton
вот и все
Vladimir
Ну еслиб ты сразу так сказал
Vladimir
Было б пррще
Filipp
Anton
Anton
увы я даже такое реализовать сейчас не смогу
Anton
по идее так вообще на regexp можно сделать
Anton
но опять таки это все не про меня)
Vladimir
Ладно, я буду ехать в поезде с сб на воскресенье, и всё обсудим
Anton
Инклудить библиотеку в код пролижения как байты, при запуске распаковывать в tmp, и линковатся к ней через libdl)
Vladimir
И попробую накатать чёт
Vladimir
Ещё раз скинь Линк на гихтаб
Светомеч
Vladimir
Чтоб я на твоё дерево аст глянул
Anton
Anton
https://github.com/friktor/wiki-reader
Anton
Ну крч заходишь в папочку wiki-parser
Anonymous
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)] чот не робят
Алексей
привык что в других ЯП 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
Алексей
Filipp
Ну одно дело объявить тип , а другое - создать экземпляр, который подходит под этот тип. let a: u64 = 'z'
Vladimir
ты книгу читал?
Алексей
Vladimir
Кто-нибудь знает, как обработать редирект в hyper`e? Т.е ситуация следующая: залогинившись на сайте, после отправки POST-запроса, сервер сначала кидает мне 302, а уже после - 200. Таким образом я вместо страницы, которую желаю получить, получаю сообщение о том, что происходит редирект. И если в брауере он происходит, то как обработать его в hyper`e я не знаю. Сервер не мой, если что
В чем именно проблема, код ошибки не можешь получить, урл?
"как обработать" - считать урл и запросить еще раз по нему данные.
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
должно работать?
Anton
Anton
Алексей
.to_string() надо дописывать p.s. поправил
Алексей
тогда литарал конвертнёт в строку
Алексей
.as_str () и to_string() это тоже разные вещи :( вот почему у меня не прокатило
Filipp
Алексей
тупизм на ровном месте (
Алексей
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