aboutsummaryrefslogtreecommitdiff
path: root/lib/reflect/example_test.go
AgeCommit message (Collapse)Author
11 daysall: apply go fixShulhan
2025-01-23all: use for-range with numericShulhan
Go 1.22 now support for-range on numeric value.
2025-01-23all: replace "interface{}" with "any"Shulhan
2024-03-05all: comply with linter recommendations #2Shulhan
HTTP request now implicitly create request with context. Any false positive related to not closing HTTP response body has been annotated with "nolint:bodyclose". In the example code, use consistent "// Output:" comment format, by prefixing with single space. Any comment on code now also prefixing with single space. An error returned without variables now use [errors.New] instead of [fmt.Errorf]. Any error returned using [fmt.Errorf] now wrapped using "%w" instead of "%s". Also, replace error checking using [errors.Is] or [errors.As], instead of using equal/not-equal operator. Any statement like "x = x OP y" now replaced with "x OP= y". Also, swap statement is simplified using "x, y = y, x". Any switch statement with single case now replaced with if-condition. Any call to defer on function or program that call [os.Exit], now replaced by calling the deferred function directly. Any if-else condition now replaced with switch statement, if possible.
2024-03-02all: move the repository to "git.sr.ht/~shulhan/pakakeh.go"Shulhan
There are several reasons that why we move from github.com. First, related to the name of package. We accidentally name the package with "share" a common word in English that does not reflect the content of repository. By moving to other repository, we can rename it to better and unique name, in this "pakakeh.go". Pakakeh is Minang word for tools, and ".go" suffix indicate that the repository related to Go programming language. Second, supporting open source. The new repository is hosted under sourcehut.org, the founder is known to support open source, and all their services are licensed under AGPL, unlike GitHub that are closed sources. Third, regarding GitHub CoPilot. The GitHub Terms of Service [1], allow any public content that are hosted there granted them to parse the content. On one side, GitHub helps and flourish the open source, but on another side have an issues regarding scraping the copyleft license [2]. [1]: https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#4-license-grant-to-us [2]: https://githubcopilotinvestigation.com
2023-04-13lib/reflect: change the package name in Example to have _test suffixShulhan
Package name in test Example should be different with the actual package. This is to minimize leaking un-exported function or method in Example test.
2023-04-13lib/reflect: add option to skip processing struct field in Do/IsEqualShulhan
A struct's field tagged with `noequal:""`, its value will not be processed for equality.
2023-04-13lib/reflect: remove the third return value from MarshalShulhan
The third, boolean, return value is redundant with the second error value.
2022-06-25lib/reflect: add function MarshalShulhan
The Marshal function marshal the obj value to []byte by calling one of the method: MarshalBinary, MarshalJSON, or MarshalText; in respective order. If obj implement one of the method with valid signature, it will return (out, nil, true); unless there is an error. If the method signature invalid it will return (nil, err, false). If obj is nil or none of the method exist it will return (nil, nil, false).
2022-06-24lib/reflect: simplify example using fmt.PrintlnShulhan
2022-06-24lib/reflect: support excluding field using "-" on TagShulhan
If field tagged with "-" the Tag function will return empty value, nil options, and false.
2022-06-08lib/reflect: implement Set function to set reflect.Value by stringShulhan
The Set function set the obj value by converting the string val from parameter to the obj type. If the obj is an interface or struct, its value will be set by calling Unmarshal. It will return an error if, - obj is not setable, variable is passed without pointer or pointer not initialized. - val is overflow - obj Kind is Invalid, Array, Chan, Func, Map, or UnsafePointer.
2022-06-07lib/reflect: rename example fileShulhan
No need to prefix the filename with the package name itself.