Thread overview
State Machine
Jan 02, 2021
Tim
Jan 02, 2021
RSY
Jan 02, 2021
Tim
Jan 02, 2021
Tim
January 02, 2021
Hi there,

I was wondering if there is a very D approach to making a state machine. I ask this because I could mangle something together but if there is a language feature that could make my life a lot easier or readable then that would be fantastic. The main thing I'm wondering about is being able to run some sort of arbitrary code in the form of strings (maybe using string mixins) as the machine exits a state
January 02, 2021
On Saturday, 2 January 2021 at 05:19:08 UTC, Tim wrote:
> Hi there,
>
> I was wondering if there is a very D approach to making a state machine. I ask this because I could mangle something together but if there is a language feature that could make my life a lot easier or readable then that would be fantastic. The main thing I'm wondering about is being able to run some sort of arbitrary code in the form of strings (maybe using string mixins) as the machine exits a state

I found this on github, that might be what you are looking for: https://github.com/mintyfresh/state-machine

It make uses of mixins, wich looks very nice
January 02, 2021
On Saturday, 2 January 2021 at 08:29:44 UTC, RSY wrote:
> On Saturday, 2 January 2021 at 05:19:08 UTC, Tim wrote:
>> Hi there,
>>
>> I was wondering if there is a very D approach to making a state machine. I ask this because I could mangle something together but if there is a language feature that could make my life a lot easier or readable then that would be fantastic. The main thing I'm wondering about is being able to run some sort of arbitrary code in the form of strings (maybe using string mixins) as the machine exits a state
>
> I found this on github, that might be what you are looking for: https://github.com/mintyfresh/state-machine
>
> It make uses of mixins, wich looks very nice

This looks pretty good, thanks for that. It could get a little annoying having to create actual named functions for things that are only executed in one place. Any chance there may be a way to use the transition parameters with a code block rather than a full function?
January 02, 2021
On Saturday, 2 January 2021 at 08:29:44 UTC, RSY wrote:
> On Saturday, 2 January 2021 at 05:19:08 UTC, Tim wrote:
>> Hi there,
>>
>> I was wondering if there is a very D approach to making a state machine. I ask this because I could mangle something together but if there is a language feature that could make my life a lot easier or readable then that would be fantastic. The main thing I'm wondering about is being able to run some sort of arbitrary code in the form of strings (maybe using string mixins) as the machine exits a state
>
> I found this on github, that might be what you are looking for: https://github.com/mintyfresh/state-machine
>
> It make uses of mixins, wich looks very nice

Let me explain a little better. I'd love to be able to do this sort of thing:

@BeforeTransition("ordered")
{
    int foo = 0;
    ...
}