Update Changelog
[profile/ivi/libgee.git] / gee / hashable.vala
1 /* hashable.vala
2  *
3  * Copyright (C) 2010  Maciej Piechotka
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
18  *
19  * Author:
20  *      Maciej Piechotka <uzytkwonik2@gmail.com>
21  */
22
23 /**
24  * This interface defines a hash function amongs instances of each class
25  * implementing it.
26  * 
27  * @see Comparable
28  */
29 public interface Gee.Hashable<G> : Object {
30         /**
31          * Computes hash for an objects. Two hashes of equal objects have to be
32          * equal. Hash have to not change during lifetime of object.
33          *
34          * @return hash of an object
35          */
36         public abstract uint hash ();
37
38         /**
39          * Compares this object with the specifed object.
40          *
41          * @return true if objects are equal
42          */
43         public abstract bool equal_to (G object);
44 }