pw_result: Add experimental result module

The pw_result module defines a Result type which stores a Status
alongside some data. It is provided as a convenient way to return a
value and a status together, without requiring an "out" pointer.

Change-Id: Ibb630c7167faf6832e2b5e943220250ac820604e
diff --git a/pw_result/BUILD b/pw_result/BUILD
new file mode 100644
index 0000000..b296313
--- /dev/null
+++ b/pw_result/BUILD
@@ -0,0 +1,37 @@
+# Copyright 2020 The Pigweed Authors
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+load(
+    "//pw_build:pigweed.bzl",
+    "pw_cc_library",
+    "pw_cc_test",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])  # Apache License 2.0
+
+pw_cc_library(
+    name = "pw_result",
+    hdrs = [
+        "public/pw_result/result.h",
+    ],
+    includes = ["public"],
+)
+
+pw_cc_test(
+    name = "result_test",
+    srcs = [ "result_test.cc" ],
+    deps = ["//pw_result"],
+)