mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
fix: disable inlining of debug functions
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@@ -30,6 +30,8 @@ type (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// String prints some debug info for the object
|
// String prints some debug info for the object
|
||||||
|
//
|
||||||
|
// go:noinline
|
||||||
func eitherString(s *either) string {
|
func eitherString(s *either) string {
|
||||||
if s.isLeft {
|
if s.isLeft {
|
||||||
return fmt.Sprintf("Left[%T](%v)", s.value, s.value)
|
return fmt.Sprintf("Left[%T](%v)", s.value, s.value)
|
||||||
@@ -38,6 +40,8 @@ func eitherString(s *either) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Format prints some debug info for the object
|
// Format prints some debug info for the object
|
||||||
|
//
|
||||||
|
// go:noinline
|
||||||
func eitherFormat(e *either, f fmt.State, c rune) {
|
func eitherFormat(e *either, f fmt.State, c rune) {
|
||||||
switch c {
|
switch c {
|
||||||
case 's':
|
case 's':
|
||||||
|
@@ -34,6 +34,8 @@ type Option[A any] struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// optString prints some debug info for the object
|
// optString prints some debug info for the object
|
||||||
|
//
|
||||||
|
// go:noinline
|
||||||
func optString(isSome bool, value any) string {
|
func optString(isSome bool, value any) string {
|
||||||
if isSome {
|
if isSome {
|
||||||
return fmt.Sprintf("Some[%T](%v)", value, value)
|
return fmt.Sprintf("Some[%T](%v)", value, value)
|
||||||
@@ -42,6 +44,8 @@ func optString(isSome bool, value any) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// optFormat prints some debug info for the object
|
// optFormat prints some debug info for the object
|
||||||
|
//
|
||||||
|
// go:noinline
|
||||||
func optFormat(isSome bool, value any, f fmt.State, c rune) {
|
func optFormat(isSome bool, value any, f fmt.State, c rune) {
|
||||||
switch c {
|
switch c {
|
||||||
case 's':
|
case 's':
|
||||||
@@ -72,6 +76,9 @@ func (s Option[A]) MarshalJSON() ([]byte, error) {
|
|||||||
return optMarshalJSON(s.isSome, s.value)
|
return optMarshalJSON(s.isSome, s.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// optUnmarshalJSON unmarshals the [Option] from a JSON string
|
||||||
|
//
|
||||||
|
// go:noinline
|
||||||
func optUnmarshalJSON(isSome *bool, value any, data []byte) error {
|
func optUnmarshalJSON(isSome *bool, value any, data []byte) error {
|
||||||
// decode the value
|
// decode the value
|
||||||
if bytes.Equal(data, jsonNull) {
|
if bytes.Equal(data, jsonNull) {
|
||||||
|
Reference in New Issue
Block a user