Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
July 17, 2020 How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
How about a new property for class and struct like `.stringof` to get the fully qualified name? I know the `fullyQualifiedName` can do this. If a new property like `.qualifiedName` added to class and struct, the code blown: @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware)) @Action string security() { return "It's a security page."; } may be changed as: @Middleware(IpFilterMiddleware.qualifiedName, BasicAuthMiddleware.qualifiedName) @Action string security() { return "It's a security page."; } It looks better, does it? |
July 17, 2020 Re: How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Heromyth | On 17/07/2020 2:44 PM, Heromyth wrote: > @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware)) > @Action string security() { > return "It's a security page."; > } @Middleware(fullyQualifiedName!IpFilterMiddleware, fullyQualifiedName!BasicAuthMiddleware) @Action string security() { return "It's a security page."; } I would prefer we offered UFCS to work on types instead. This would give the same syntax as you wanted and it is not specific to the use case. |
July 17, 2020 Re: How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Heromyth | On Friday, 17 July 2020 at 02:44:52 UTC, Heromyth wrote:
> How about a new property for class and struct like `.stringof` to get the fully qualified name?
>
> I know the `fullyQualifiedName` can do this. If a new property like `.qualifiedName` added to class and struct, the code blown:
>
> @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware))
> @Action string security() {
> return "It's a security page.";
> }
>
> may be changed as:
>
> @Middleware(IpFilterMiddleware.qualifiedName, BasicAuthMiddleware.qualifiedName)
> @Action string security() {
> return "It's a security page.";
> }
>
> It looks better, does it?
Note that you can also make an alias for fullyQualifiedName:
import fqn = std.traits: fullyQualifiedName;
|
July 17, 2020 Re: How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Friday, 17 July 2020 at 03:19:18 UTC, rikki cattermole wrote:
> On 17/07/2020 2:44 PM, Heromyth wrote:
>> @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware))
>> @Action string security() {
>> return "It's a security page.";
>> }
>
> @Middleware(fullyQualifiedName!IpFilterMiddleware, fullyQualifiedName!BasicAuthMiddleware)
> @Action string security() {
> return "It's a security page.";
> }
>
> I would prefer we offered UFCS to work on types instead. This would give the same syntax as you wanted and it is not specific to the use case.
Yes, please
|
July 17, 2020 Re: How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Heromyth | On Friday, 17 July 2020 at 02:44:52 UTC, Heromyth wrote:
> How about a new property for class and struct like `.stringof` to get the fully qualified name?
>
> I know the `fullyQualifiedName` can do this. If a new property like `.qualifiedName` added to class and struct, the code blown:
>
> @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware))
> @Action string security() {
> return "It's a security page.";
> }
>
> may be changed as:
>
> @Middleware(IpFilterMiddleware.qualifiedName, BasicAuthMiddleware.qualifiedName)
> @Action string security() {
> return "It's a security page.";
> }
>
> It looks better, does it?
There is a second reason for wanting it, which is that the fullyQualified name template is rather expensive to instantiate.
|
July 17, 2020 Re: How about a new property for class and struct to get the fully qualified name? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Friday, 17 July 2020 at 03:19:18 UTC, rikki cattermole wrote:
> On 17/07/2020 2:44 PM, Heromyth wrote:
>> @Middleware(fullyQualifiedName!(IpFilterMiddleware), fullyQualifiedName!(BasicAuthMiddleware))
>> @Action string security() {
>> return "It's a security page.";
>> }
>
> @Middleware(fullyQualifiedName!IpFilterMiddleware, fullyQualifiedName!BasicAuthMiddleware)
> @Action string security() {
> return "It's a security page.";
> }
>
> I would prefer we offered UFCS to work on types instead. This would give the same syntax as you wanted and it is not specific to the use case.
It's not so easy to do that.
type function do attempt that and indeed with my WIP type function extension you could do a fullyQualifiedName type-function which, (because type functions are regular functions) is callable with UFCS. (And it avoids the template instance overhead.)
|
Copyright © 1999-2021 by the D Language Foundation