<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chiselX/core/src/main/scala-2.12/scala/collection/immutable, branch master</title>
<subtitle>Chisel with SFC compatibility</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/'/>
<entry>
<title>Add DataView (#1955)</title>
<updated>2021-08-13T00:04:11+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-08-13T00:04:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=1ceb974c55c6785c21ab3934fa750ade0702e276'/>
<id>1ceb974c55c6785c21ab3934fa750ade0702e276</id>
<content type='text'>
DataView is a mechanism for "viewing" Scala objects as a subtype of
`Data`. Often, this is useful for viewing one subtype of `Data`, as
another. One can think about a DataView as a cross between a
customizable cast and an untagged union.

A DataView has a Target type `T`, and a View type `V`. DataView requires
that an implementation of `DataProduct` is available for Target types.
DataProduct is a type class that provides a way to iterate on `Data`
children of objects of implementing types.

If a DataView is provided for a type T to a type V, then the function
.viewAs[V] (of type T =&gt; V) is available. The object (of type T) returned
by .viewAs is called a "View" and can be used as both an rvalue and an
lvalue. Unlike when using an .asTypeOf cast, connecting to a "View" will
connect to the associated field or fields of the underlying Target.

DataView also enables .viewAsSupertype which is available for viewing
Bundles as a parent Bundle type. It is similar to .viewAs but requires
a prototype object of the Target type which will be cloned in order to
create the returned View. .viewAsSupertype maps between the
corresponding fields of the parent and child Bundle types.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DataView is a mechanism for "viewing" Scala objects as a subtype of
`Data`. Often, this is useful for viewing one subtype of `Data`, as
another. One can think about a DataView as a cross between a
customizable cast and an untagged union.

A DataView has a Target type `T`, and a View type `V`. DataView requires
that an implementation of `DataProduct` is available for Target types.
DataProduct is a type class that provides a way to iterate on `Data`
children of objects of implementing types.

If a DataView is provided for a type T to a type V, then the function
.viewAs[V] (of type T =&gt; V) is available. The object (of type T) returned
by .viewAs is called a "View" and can be used as both an rvalue and an
lvalue. Unlike when using an .asTypeOf cast, connecting to a "View" will
connect to the associated field or fields of the underlying Target.

DataView also enables .viewAsSupertype which is available for viewing
Bundles as a parent Bundle type. It is similar to .viewAs but requires
a prototype object of the Target type which will be cloned in order to
create the returned View. .viewAsSupertype maps between the
corresponding fields of the parent and child Bundle types.</pre>
</div>
</content>
</entry>
<entry>
<title>Scala 2.13 support (#1751)</title>
<updated>2021-04-29T23:18:06+00:00</updated>
<author>
<name>Jack Koenig</name>
</author>
<published>2021-04-29T23:18:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/chiselX/commit/?id=c5861176887bfa529277e686df09a42aeceb6cd7'/>
<id>c5861176887bfa529277e686df09a42aeceb6cd7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
