UniRange.vala
/*
Copyright (C) 2012, 2014 Johan Mattsson
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 3 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
*/
namespace BirdFont {
public class UniRange : GLib.Object {
public unichar start;
public unichar stop;
public UniRange (unichar start, unichar stop) {
this.start = start;
this.stop = stop;
}
public unichar length () {
return stop - start + 1;
}
public bool has_character (unichar c) {
return (start <= c <= stop);
}
public unichar get_char (unichar index) {
unichar result = start + index;
if (unlikely (!(start <= result <= stop))) {
warning ("Index out of range in UniRange (%u <= %u <= %u) (index: %u)\n", start, result, stop, index);
}
return result;
}
}
}