История изменений
Исправление theNamelessOne, (текущая версия) :
В чём проблема записывать свойства символов в виде plist?
Ну, на однострочниках легко демонстрировать превосходство синтаксиса с блекджеком и plist'ами. Но ты мне лучше покажи, как будет выглядеть на Lispy Rust следующий фрагмент, а то я сам попробовал, и мне результат не понравился.
#[must_use = "futures are lazy and do nothing unless consumed"]
pub struct Future<T: Send + 'static, E: Send + 'static> {
pub core: Option<Core<T, E>>,
}
impl<T: Send + 'static, E: Send + 'static> Future<Option<(T, Stream<T, E>)>, E> {
/// An adapter that converts any future into a one-value stream
pub fn to_stream(mut self) -> Stream<T, E> {
stream::from_core(core::take(&mut self.core))
}
}
impl<T: Send + 'static, E: Send + 'static> Async for Future<T, E> {
type Value = T;
type Error = E;
type Cancel = Receipt<Future<T, E>>;
fn is_ready(&self) -> bool {
core::get(&self.core).consumer_is_ready()
}
}
И это, прошу заметить, далеко не самый навороченный (в плане сахара и синтаксиса) код на Rust.
Постарайся, чтобы код получился идентичным коду на Rust, и при этом синтаксис не получился неоднозначным с учётом того, что атрибуты, спецификаторы видимости и времени жизни, обобщенные аргументы, связанные типы и пр. опциональны.
Исходная версия theNamelessOne, :
В чём проблема записывать свойства символов в виде plist?
Ну, на однострочниках легко демонстрировать превосходство синтаксиса с блекджеком и plist'ами. Но ты мне лучше покажи, как будет выглядеть на Lispy Rust следующий фрагмент, а то я сам попробовал, и мне результат не понравился.
#[must_use = "futures are lazy and do nothing unless consumed"]
pub struct Future<T: Send + 'static, E: Send + 'static> {
pub core: Option<Core<T, E>>,
}
impl<T: Send + 'static, E: Send + 'static> Async for Future<T, E> {
type Value = T;
type Error = E;
type Cancel = Receipt<Future<T, E>>;
fn is_ready(&self) -> bool {
core::get(&self.core).consumer_is_ready()
}
}
И это, прошу заметить, далеко не самый навороченный (в плане сахара и синтаксиса) код на Rust.