aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/d/hello_lib/greeter.d
diff options
context:
space:
mode:
authorGravatar David Chen <dzc@google.com>2015-09-07 21:49:56 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-09-08 09:08:50 +0000
commit87419786a7f80c72f5c89c76d33e807d6166a07b (patch)
treedce310e876fc54eef557dee02697bbe9a8b00f9a /examples/d/hello_lib/greeter.d
parent56c7d552545bde9d471154ad9844db9801907a33 (diff)
Add initial D rules to Bazel.
-- MOS_MIGRATED_REVID=102513092
Diffstat (limited to 'examples/d/hello_lib/greeter.d')
-rw-r--r--examples/d/hello_lib/greeter.d51
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/d/hello_lib/greeter.d b/examples/d/hello_lib/greeter.d
new file mode 100644
index 0000000000..ec916ffbe5
--- /dev/null
+++ b/examples/d/hello_lib/greeter.d
@@ -0,0 +1,51 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// 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
+//
+// http://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.
+
+module greeter;
+
+import std.stdio;
+import std.string;
+
+/// Displays a greeting.
+class Greeter {
+ private string greeting;
+
+ public:
+ /// Creates a new greeter.
+ ///
+ /// Params:
+ /// greeting = The greeting to use.
+ this(in string greeting) {
+ this.greeting = greeting.dup;
+ }
+
+ /// Returns the greeting as a string.
+ ///
+ /// Params:
+ /// thing = The thing to greet
+ ///
+ /// Returns:
+ /// A greeting as a string.
+ string makeGreeting(in immutable string thing) {
+ return format("%s %s!", this.greeting, thing);
+ }
+
+ /// Prints a greeting.
+ ///
+ /// Params:
+ /// thing = The thing to greet.
+ void greet(in immutable string thing) {
+ writeln(makeGreeting(thing));
+ }
+}