Implementing typestate

BBasile via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 15 11:10:04 PDT 2015


On Tuesday, 15 September 2015 at 17:59:19 UTC, Freddy wrote:
> On Tuesday, 15 September 2015 at 17:57:10 UTC, BBasile wrote:
>>
>> This won't work in D. Everything that's static is common to 
>> each instance.
>> What's possible however is to use an immutable FState that's 
>> set in the ctor.
>>
>> ---
>> struct File
>> {
>>     immutable FState state,
>>     this(string fname, FState st){state = st}
>> }
>> ---
>>
>> Than you're sure that your file state can't be changed by 
>> error.
>> Otherwise just hide the state to set it as a private 
>> variable...
>
> No, I'm talking about adding a new feature to the language, 
> modifable enums(typestate).

Ok, sorry I didn't know this concept so far.
So there would be a kind of 'compile-time instance' of File with 
a modifiable member ?



More information about the Digitalmars-d mailing list