Skip to content

Result type #21

@joonas-fi

Description

@joonas-fi

Some sketching:

type Result[T any] struct {
	item *T
	err  error
}

func Ok[T any](value T) Result[T] {
	return Result[T]{
		item: &value,
		err:  nil,
	}
}

func Err[T any](err error) Result[T] {
	return Result[T]{
		item: nil,
		err:  err,
	}
}

func getTemp(succeed bool) Result[string] {
	if succeed {
		return Ok("warm")
	} else {
		return Err[string](errors.New("could not succeed"))
	}
}

func main() {
	temp := getTemp(true)
	fmt.Printf("temp=%s\n", *temp.item)
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions