Thread overview
Convert struct to set of fields and pass it's to constructor
Feb 01, 2017
Suliman
Feb 01, 2017
Minty Fresh
Feb 01, 2017
Suliman
February 01, 2017
Class constructor accept only set if fields like
this(string login, string pass)

Can I create structure, fill it, and than pass to constructor?

Like this:
```
import std.stdio;

struct ConnectSettings
{
	string login;
	string pass;
};
ConnectSettings cs;

void main()
{
 cs.login = "admin";
 cs.pass = "mypass";
}
```

and than pass to constructor it's like:

`... new SomeClass(cs)`


I tried, but get error, that ctor accept only fields list. Can I unroll struct to it?







February 01, 2017
On Wednesday, 1 February 2017 at 13:37:27 UTC, Suliman wrote:
> Class constructor accept only set if fields like
> this(string login, string pass)
>
> Can I create structure, fill it, and than pass to constructor?
>
> Like this:
> ```
> import std.stdio;
>
> struct ConnectSettings
> {
> 	string login;
> 	string pass;
> };
> ConnectSettings cs;
>
> void main()
> {
>  cs.login = "admin";
>  cs.pass = "mypass";
> }
> ```
>
> and than pass to constructor it's like:
>
> `... new SomeClass(cs)`
>
>
> I tried, but get error, that ctor accept only fields list. Can I unroll struct to it?

tupleof is probably what you're looking for.
ie.

  new SomeClass(cs.tupleof);

That said, why not have the constructor accept the struct as a parameter?

February 01, 2017
On Wednesday, 1 February 2017 at 13:51:28 UTC, Minty Fresh wrote:
> On Wednesday, 1 February 2017 at 13:37:27 UTC, Suliman wrote:
>> Class constructor accept only set if fields like
>> this(string login, string pass)
>>
>> Can I create structure, fill it, and than pass to constructor?
>>
>> Like this:
>> ```
>> import std.stdio;
>>
>> struct ConnectSettings
>> {
>> 	string login;
>> 	string pass;
>> };
>> ConnectSettings cs;
>>
>> void main()
>> {
>>  cs.login = "admin";
>>  cs.pass = "mypass";
>> }
>> ```
>>
>> and than pass to constructor it's like:
>>
>> `... new SomeClass(cs)`
>>
>>
>> I tried, but get error, that ctor accept only fields list. Can I unroll struct to it?
>
> tupleof is probably what you're looking for.
> ie.
>
>   new SomeClass(cs.tupleof);
>
> That said, why not have the constructor accept the struct as a parameter?

Because it's implemented not by me, and I do not want to touch its realization.