What's everyone working on this week (16/2017)?

New week, new Rust! What are you folks up to?

Going to give the date datatype in elastic_types some love and add support for date math and ranges.

2 Likes

Pushed a whole bunch of tests to uom that I have been working on the last couple weeks. Coverage up to 99 %! This week I'm hoping to push a new version to crates.io and contribute a metric benchmark.

2 Likes

Over the weekend I blew the dust off my first rust project and started adding new features. I applied some of what I've learned recently and more than doubled the throughput. Once I'm finished with the new feature I'm going to benchmark it against the original C implementation to see how it compares.

2 Likes

Rounded off the evaluation steps in lichen so it is used more like an iterator, and also came up with an example.

Example's rust src
Example's lichen src

I'd like a more convenient way to implement a field lookup. Right now in lichen source you would:

if 'items.gloves-of-dragon-scale ...

and in rust you would have to implement this accessor

let lookups: Vec<&str> = lookup.split_terminator('.').collect();
match lookups[0] {
    "items" => {
        Some(self.items.contains_key(lookups[1]).into())
    },
     _ => None,
}

Also it's likely I'll be implementing a module system to tie multiple dialogue graphs together.
Another todo is to be able to easily control flow on dialogue interaction, so one could write a single node that basically pauses on interaction-- something akin to:

emit "Would you like to inquire about Dragonscale Gloves?"
yield  # await some input
if state.inquires [  # consider internal state of node
    "The age of Dragonscale ..."
    "It's rarity is unsurpassed, the ..."
]

Perhaps there is a better way to lay that out without scattering yields/awaits everywhere. There is also this temptation to start providing ways to set any state within a node, but I'm holding back on that for now.

1 Like