Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
mtfishman committed Dec 6, 2024
1 parent f97d55a commit 14251b0
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)
[![Aqua](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)

## About

This is a package for defining and deriving functionality for objects based around interfaces and traits,
outside of the Julia type hierarchy.
It is heavily inspired by [Moshi.@derive](https://rogerluo.dev/Moshi.jl/start/derive), which itself is inspired by
[Rust's derive functionality](https://doc.rust-lang.org/rust-by-example/trait/derive.html), and the design of
[ArrayLayouts.jl](https://github.com/JuliaLinearAlgebra/ArrayLayouts.jl).

The basic idea is to define implementations of a set of functions for a given interface, and types
can overload, or derive, those implementations by specifying the desired interface. This provides
a systematic way to define implementations of functions for objects that act in a certain way but may
not share convenient abstact supertypes, such as a sparse array object and wrappers around that sparse
array. Like in `Moshi.jl` and Rust's derive functionality, traits are simply sets of functions
that can be derived for a certain type.

## Installation instructions

This package resides in the `ITensor/ITensorRegistry` local registry.
Expand Down
15 changes: 15 additions & 0 deletions examples/README.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@
# [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)
# [![Aqua](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)

# ## About

# This is a package for defining and deriving functionality for objects based around interfaces and traits,
# outside of the Julia type hierarchy.
# It is heavily inspired by [Moshi.@derive](https://rogerluo.dev/Moshi.jl/start/derive), which itself is inspired by
# [Rust's derive functionality](https://doc.rust-lang.org/rust-by-example/trait/derive.html), and the design of
# [ArrayLayouts.jl](https://github.com/JuliaLinearAlgebra/ArrayLayouts.jl).
#
# The basic idea is to define implementations of a set of functions for a given interface, and types
# can overload, or derive, those implementations by specifying the desired interface. This provides
# a systematic way to define implementations of functions for objects that act in a certain way but may
# not share convenient abstact supertypes, such as a sparse array object and wrappers around that sparse
# array. Like in `Moshi.jl` and Rust's derive functionality, traits are simply sets of functions
# that can be derived for a certain type.

# ## Installation instructions

# This package resides in the `ITensor/ITensorRegistry` local registry.
Expand Down

0 comments on commit 14251b0

Please sign in to comment.