pcp/kernel/event.rs
1// Copyright 2015 Pierre Talbot (IRCAM)
2
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6
7// http://www.apache.org/licenses/LICENSE-2.0
8
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15pub trait EventIndex : Copy {
16 fn to_index(self) -> usize;
17 fn size() -> usize;
18}
19
20pub trait MonotonicEvent<Domain> : Sized {
21 // precondition: `little` is a subset of `big`.
22 // returns `None` if no event occurred.
23 fn new(little: &Domain, big: &Domain) -> Option<Self>;
24}