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

pub type SessionExecutionError(exec_error) {
  TrackError(TrackError)
  ExecutionError(execution.ExecutionError(exec_error))
}

Constructors

pub type TrackError {
  EntityError(entity.EntityError)
  IdentityMapError(identity_map.IdentityMapError)
  UnknownTrackedEntity(relation.TableRef, unit_of_work.Identity)
}

Constructors

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 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 rollback(session: Session) -> Session
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)
Search Document