galchemy/session/runtime
Types
pub type HookTrackError(hook_error) {
TrackFailure(TrackError)
HookFailure(hook_error)
}
Constructors
-
TrackFailure(TrackError) -
HookFailure(hook_error)
pub type Session {
Session(
snapshot: model.SchemaSnapshot,
pending: unit_of_work.Session,
tracked: identity_map.IdentityMap,
persisted: identity_map.IdentityMap,
)
}
Constructors
-
Session( snapshot: model.SchemaSnapshot, pending: unit_of_work.Session, tracked: identity_map.IdentityMap, persisted: identity_map.IdentityMap, )
pub type SessionExecutionError(exec_error) {
TrackError(TrackError)
ExecutionError(execution.ExecutionError(exec_error))
}
Constructors
-
TrackError(TrackError) -
ExecutionError(execution.ExecutionError(exec_error))
pub type TrackError {
EntityError(entity.EntityError)
IdentityMapError(identity_map.IdentityMapError)
UnknownTrackedEntity(relation.TableRef, unit_of_work.Identity)
}
Constructors
-
EntityError(entity.EntityError) -
IdentityMapError(identity_map.IdentityMapError) -
UnknownTrackedEntity(relation.TableRef, unit_of_work.Identity)
Values
pub fn attach(
session: Session,
next_entity: entity.Entity,
) -> Result(Session, TrackError)
pub fn attach_with_hooks(
session: Session,
next_entity: entity.Entity,
hooks: hook.EntityHooks(hook_error),
) -> Result(Session, HookTrackError(hook_error))
pub fn commit(
session: Session,
executor: fn(query.Query) -> Result(result, exec_error),
) -> Result(
#(execution.FlushExecution(result), Session),
SessionExecutionError(exec_error),
)
pub fn detach(
session: Session,
next_entity: entity.Entity,
) -> Result(Session, TrackError)
pub fn flush(
session: Session,
executor: fn(query.Query) -> Result(result, exec_error),
) -> Result(
#(execution.FlushExecution(result), Session),
SessionExecutionError(exec_error),
)
pub fn get(
session: Session,
table: relation.TableRef,
identity: unit_of_work.Identity,
) -> option.Option(entity.Entity)
pub fn new(snapshot: model.SchemaSnapshot) -> Session
pub fn pending_changes(session: Session) -> unit_of_work.Session
pub fn refresh(
session: Session,
next_entity: entity.Entity,
) -> Result(Session, TrackError)
pub fn refresh_with_hooks(
session: Session,
next_entity: entity.Entity,
hooks: hook.EntityHooks(hook_error),
) -> Result(Session, HookTrackError(hook_error))
pub fn stage(
session: Session,
next_entity: entity.Entity,
) -> Result(Session, TrackError)
pub fn stage_with_hooks(
session: Session,
next_entity: entity.Entity,
hooks: hook.EntityHooks(hook_error),
) -> Result(Session, HookTrackError(hook_error))
pub fn track(
session: Session,
next_entity: entity.Entity,
) -> Result(Session, TrackError)
pub fn tracked_entities(session: Session) -> List(entity.Entity)