On Sunday, 14 May 2017 at 20:04:07 UTC, zabruk70 wrote:
I look to std.base64 module source.
And dont unerstand what is the "Base64" part in "Base64.encode(data)" example.
I see std.base64 module use template Base64Impl.
I see alias Base64 = Base64Impl!...
But down understand.
Base64 not module, not structure, not class?

The full line is `alias Base64 = Base64Impl!('+', '/');`, which reads as (refer to [1][2]): The symbol Base64 refers to the Base64Impl template instantiated with the template parameters '+' and '/'.

Template Base64Impl shoud produce function?

I don't understand what you're trying to express here.
As Base64Impl's documentation states[3], it contains a generic Base64 implementation for which you can customize some of the encoding characters at compile time via template parameters.


I want create base32 encoder/decoder for example.
But i dont need template.
So how i can write Base32.encode()?
By creating class Base32 with encode() member.
By creating structute Base32 with encode() member.
Any other options?

You can create a base32 encoder however you like, D has lots of different ways you could approach this; you can even do it in a C way with two functions base32_encode / base32_decode. Just pick whatever you like.

PS: Please spellcheck.

[1] https://dlang.org/spec/declaration.html#alias
[2] https://dlang.org/spec/template.html
[3] https://github.com/dlang/phobos/blob/master/std/base64.d#L108

Reply via email to