diff options
Diffstat (limited to 'src/library/scala/annotation/unique/package.scala')
-rw-r--r-- | src/library/scala/annotation/unique/package.scala | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/library/scala/annotation/unique/package.scala b/src/library/scala/annotation/unique/package.scala new file mode 100644 index 0000000000..a57a2bdfda --- /dev/null +++ b/src/library/scala/annotation/unique/package.scala @@ -0,0 +1,31 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2002-2010, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +\* */ + +package scala.annotation + +/** + * An object that provides methods for capturing unique references, and + * for accessing unique fields. + * + * @author Philipp Haller + * @since 2.9 + */ +package object unique { + + trait Captured[A] { + def captured: A + def capturedBy[B](other: B): A = captured + } + + implicit def mkCaptured[A](x: A) = new Captured[A] { + def captured: A = x + } + + def swap[A, B <: A](to: A, from: B): A = to + +} |