59 lines
1.3 KiB
V
59 lines
1.3 KiB
V
module osis
|
|
|
|
import os
|
|
|
|
pub fn (mut o OSIS) generic_new[T](obj T) !u32 {
|
|
id := o.indexer.generic_new[T](obj)!
|
|
o.storer.generic_new[T](obj)!
|
|
return id
|
|
}
|
|
|
|
pub fn (mut o OSIS) new[T](obj T) !u32 {
|
|
id := o.storer.new_generic[T](obj)!
|
|
o.indexer.new_generic[T](id, obj)!
|
|
return id
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_get[T](id u32) !T {
|
|
return o.storer.generic_get[T](id)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) get[T](id u32) !T {
|
|
return o.storer.generic_get[T](u32(id))!
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_set[T](obj T) ! {
|
|
o.indexer.generic_set[T](obj) or { return error('Failed to set new indices:\n${err}') }
|
|
o.storer.generic_set[T](obj)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_delete[T](id u32) ! {
|
|
o.indexer.generic_delete[T](id)!
|
|
o.storer.generic_delete[T](id)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) delete(id u32) ! {
|
|
o.storer.delete(u32(id))!
|
|
}
|
|
|
|
pub fn (mut o OSIS) list[T]() ![]T {
|
|
panic('implement')
|
|
// ids := o.indexer.generic_list[T]()!
|
|
// return o.storer.generic_list[T](ids)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_list[T]() ![]T {
|
|
ids := o.indexer.generic_list[T]()!
|
|
return o.storer.generic_list[T](ids)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_filter[T, D](filter D, params FilterParams) ![]T {
|
|
ids := o.indexer.generic_filter[T, D](filter, params)!
|
|
return o.storer.generic_list[T](ids)!
|
|
}
|
|
|
|
pub fn (mut o OSIS) generic_reset[T]() ! {
|
|
o.indexer.generic_reset[T]()!
|
|
o.storer.generic_reset[T]()!
|
|
}
|