lubeck 0.0.0-prealpha.5-abandoned

Functional programming framework written in cutting edge rust
Documentation
use lubeck::common::writer::Writer;
use lubeck::prelude::*;

type LogWriter<T> = Writer<'static, String, T>;

fn start_logger_with(start_number: usize) -> LogWriter<usize> {
    Writer::new((start_number, format!("Start with {start_number}\n")))
}

fn add_2_writer(add_to_this: usize) -> LogWriter<usize> {
    Writer::new((
        add_to_this + 2,
        format!("Added 2 so now we have {}", add_to_this + 2),
    ))
}

fn main() {
    let writer_hi = start_logger_with(2);

    let composed_writers = writer_hi.bind(add_2_writer);

    let (result, log) = composed_writers.run();

    println!("Result is {result}!\n==========");
    println!("Recorded the following log:\n\"\n{}\n\"", log);
}